<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統(tǒng)計(jì)

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    #

    面向?qū)ο缶幊讨谐R婎惖墓δ芎托螒B(tài)

    在面向?qū)ο缶幊讨校覀円话悴捎脧捻斚蛳碌木幊谭绞剑聪仍O(shè)計(jì)類的層次,如View,Controller,Service,Dao,Domain,Util等,再完善各層中的類。在這個(gè)過程中,我發(fā)現(xiàn)按功能和形態(tài)來分,系統(tǒng)中類可分為以下幾個(gè)類別:  

    1.實(shí)體類(Entity Classes):這種類一般是現(xiàn)實(shí)世界事物在代碼世界中的抽象表示,和現(xiàn)實(shí)事物有著一一對應(yīng)關(guān)系.存儲到持久介質(zhì)中時(shí)一般對應(yīng)著一條記錄.如MIS系統(tǒng)中常見的雇員類Employee,論壇系統(tǒng)中常見的Topic等.由于這些類可以直接從現(xiàn)實(shí)事物中歸納抽象得來,寫出它們的框架代碼一般相對方便容易,但要真正理順實(shí)體類之間的關(guān)系需要投入不少精力,這些類一般處于Domain層中. 

    2.通道類(Plumbing Classes):這種類一般用于充當(dāng)傳輸實(shí)體類的通道,在編程中,經(jīng)常需要從持久層取出一個(gè)或多個(gè)實(shí)體類的對象或是將實(shí)體類的對象存儲到持久層中,這種任務(wù)一般由通道類來完成.它們一般由Service或是Dao層中的類來承擔(dān).這些類一般不保存狀態(tài),對外界來說,它們的對外接口(Public Interface)一般比具體的實(shí)現(xiàn)重要,在數(shù)量較多時(shí),也經(jīng)常抽象出一些上層的抽象類或是接口出來以方便調(diào)用. 

    3.輔助類(Assistant Classes):這些類一般起輔助任務(wù),一般可以把共通的處理和變量放在其中供其他層次類調(diào)用,這樣做一能避免散彈式修改,二能減少重復(fù)代碼,三能提高代碼復(fù)用度.輔助類一般放在Util包中. 

    4.框架類(Framework Classes):這些類一般由固定的框架提供,程序員不能改變.在類的層次上它一般處于界面和業(yè)務(wù)層之間,即控制層的位置,jsp/servlet中的Servlet,Struts1,2中的Action都是這樣的類,它承擔(dān)了接受用戶輸入,并展示業(yè)務(wù)處理的結(jié)果的任務(wù).

    posted @ 2008-08-08 12:53 sitinspring 閱讀(374) | 評論 (0)編輯 收藏

    技術(shù)人之道

    一個(gè)技術(shù)人員要生存,要發(fā)展,要成一番事業(yè),必須遵循一定固定的法則,若逆天而行而不自覺,輕則徒勞無功,白費(fèi)精力;重則無法立足,庸碌一生。因此把握住自己的發(fā)展之道是技術(shù)人首要的大事,只有走在正確的道路上,前進(jìn)才有意義。 

    一個(gè)技術(shù)人員,首先要固本培元,什么是技術(shù)人的根本呢?無論語言,框架和技術(shù)如何發(fā)展,數(shù)據(jù)結(jié)構(gòu)和算法都是其核心內(nèi)容,所謂萬變不離其宗,有了良好的數(shù)據(jù)結(jié)構(gòu)和算法的根基,接受并掌握一個(gè)新興事物不過旬月時(shí)間,若沒有而盲目跟隨,事倍而功半矣。另外面向?qū)ο蟮木枰惨盐?從根本上來講,任何現(xiàn)代框架其核心思想還是沒有超越面向?qū)ο蟮姆懂?都是面向?qū)ο蟮睦^承和發(fā)展,理解掌握了面向?qū)ο蟮乃枷?就把握住了框架根本性的東西,學(xué)習(xí)掌握起來就更容易把握其本質(zhì). 

    其次,技術(shù)人員必須把握主流技術(shù)方向才不至于迷失自己。若在支流中迷失自己恐有空執(zhí)屠龍之技無用武之地之憂,古代也許還能自娛自樂,現(xiàn)代社會這樣做溫飽都無法解決,房子,車子,孩子更是白扯;只有置身主流,才能繼續(xù)奮斗下去。當(dāng)前的主流技術(shù)方向,無非SSH(Struts1/2,Spring,Hibernate)而已,徹底弄清楚它們,才有安身立命之本.君不見諸多招聘廣告,均寫SSH乎.這三項(xiàng)其實(shí)也不好掌握,尤其Hibernate,掌握不精深也不行,有些大俠也曾陰溝里翻過船。 

    其三,技術(shù)人員要樂于善于總結(jié)提高,對于已經(jīng)掌握的內(nèi)容,要及時(shí)歸納總結(jié)到紙面上,這樣做一能梳理脈絡(luò),讓自己掌握得更全面細(xì)致;二能查漏補(bǔ)缺,發(fā)現(xiàn)以前忽視或是未接觸過的領(lǐng)域;三能求其友聲,放在博客上供大家分析閱讀討論,彌補(bǔ)自己的不足.有此三益,于己于人都是一件大好事,何樂而不為呢? 

    其四,技術(shù)人員要展示自己的能力和價(jià)值,應(yīng)該具備自己的產(chǎn)品,它可以用來鞏固和展現(xiàn)自己的實(shí)力,在產(chǎn)品的研發(fā)過程中,技術(shù)人員能把自己的知識智慧實(shí)用化,可避免走入象牙塔之患;外界也能通過產(chǎn)品來了解發(fā)掘自己.這也是一件于己于人都有利的事情. 

    其五,技術(shù)人員應(yīng)該具備完整的思想體系,有自己獨(dú)到的見解并能有所突破創(chuàng)新. 人云亦云無異于鸚鵡學(xué)舌,有何能哉? 要想上一個(gè)層次,必須鯉魚躍龍門. Gosing和Kaven兩人可作為最好的榜樣。 

    最后,廣博的知識不可少.拘泥于一處難免死鉆牛角尖,很多情況下?lián)Q一種思維頓時(shí)有撥云見日之感,如有閑暇,技術(shù)人員應(yīng)該跳出圈子,廣采能用之材為我所用.

    posted @ 2008-08-08 12:51 sitinspring 閱讀(298) | 評論 (1)編輯 收藏

    用遞歸和掃描解決稱球問題

         摘要: 稱球問題經(jīng)常是面試中的常客,這里我用做了一個(gè)稱球的程序,主要的方法就是遞歸和掃描,貼出來請大家指正。  閱讀全文

    posted @ 2008-07-27 00:11 sitinspring 閱讀(1207) | 評論 (2)編輯 收藏

    二叉樹搜索樹代碼

         摘要: /** *//**  * 二叉樹節(jié)點(diǎn)類  * @author HEYANG  * @since 2008-7-26 下午02:59:06  */ class Node<T extends Comparable> {  ...  閱讀全文

    posted @ 2008-07-26 16:25 sitinspring 閱讀(1185) | 評論 (1)編輯 收藏

    蔓延法判斷兩個(gè)城市的連接狀態(tài)

         摘要: 這是一個(gè)美國IT企業(yè)的面試題,原題大意是從一個(gè)文件中讀取出可連通的城市對,給出兩個(gè)城市,判斷是否可連通,如果可連通就輸出yes,不可連通就輸出no,否則給出命令行幫助。

    其實(shí)判斷連接狀態(tài)不用遍歷圖,用蔓延法即可,具體做法就是從起始城市開始,依次改變其周邊連通城市的連通狀態(tài),再從周邊開始向周邊連通城市蔓延,如果能蔓延到結(jié)束城市的周邊可連通城市,則說明兩個(gè)城市是完全可連通的。這種做法和多米諾骨牌效應(yīng)很像。我姑且稱之為蔓延法。
      閱讀全文

    posted @ 2008-07-24 21:49 sitinspring 閱讀(1243) | 評論 (1)編輯 收藏

    用正則表達(dá)式找出每個(gè)屬性對應(yīng)的值

    找出以下字符串=符號后面對應(yīng)的屬性值

    "職務(wù)=GM 薪水=50000 , 姓名=職業(yè)經(jīng)理人 ; 性別=男  年齡=45 ";

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    /**
     * 用正則表達(dá)式找出每個(gè)屬性對應(yīng)的值
     * 
    @author HEYANG
     * 
    @since 2008-7-23 下午08:12:45
     
    */

    public class RegexFindProperty {

      
    public static void main(String[] args) {
        String input 
    = "職務(wù)=GM 薪水=50000 , 姓名=職業(yè)經(jīng)理人 ; 性別=男  年齡=45 ";
        
        
    // =號和空白符之間是非空格字符,這種寫法比去分開組合字母,數(shù)字和漢字的方式要快捷
        Pattern pattern = Pattern.compile("=(\\S+)\\s*");

        
    // 用Pattern類的matcher()方法生成一個(gè)Matcher對象
        Matcher m = pattern.matcher(input);

        
    // 使用find()方法查找第一個(gè)匹配的對象
        boolean result = m.find();

        
    // 使用循環(huán)找出模式匹配的內(nèi)容打印
        while (result) {
          
    // 取得匹配的結(jié)果
              String replaceStr = m.group(1);
              System.out.println(
    "匹配的屬性等于=" + replaceStr);
              
          result 
    = m.find();
        }

      }

    }

    posted @ 2008-07-24 21:37 sitinspring 閱讀(538) | 評論 (0)編輯 收藏

    動態(tài)生成日歷

         摘要: package com.sitinspring.datetime; import java.util.ArrayList; import java.util.List; public class MonthlyCalendar{     private static f...  閱讀全文

    posted @ 2008-07-19 22:14 sitinspring 閱讀(1090) | 評論 (0)編輯 收藏

    日期時(shí)間處理實(shí)用類

         摘要: 輸出示例:

    當(dāng)前日期時(shí)間為:2008.07.18 10:48:57
    當(dāng)前日期為:2008.07.18
    當(dāng)前日期為:2008.7.18
    當(dāng)前時(shí)間為:10:48:57
    2008.07.05與2008.07.18之間相隔:13天
    當(dāng)前年月為:2008.07
    本月第一天為周2
    本月有31天
      閱讀全文

    posted @ 2008-07-18 10:52 sitinspring 閱讀(541) | 評論 (0)編輯 收藏

    java.util.Comparator使用示例

    Comparator的具體實(shí)現(xiàn)類
    public class AgeComparator implements Comparator {
      
    public int compare(Object op1, Object op2) {
        Employee eOp1 
    = (Employee) op1;
        Employee eOp2 
    = (Employee) op2;

        
    // 按年齡排序
        return eOp1.getAge()-(eOp2.getAge());
      }

    }


    public class NameComparator implements Comparator {
      
    public int compare(Object op1, Object op2) {
        Employee eOp1 
    = (Employee) op1;
        Employee eOp2 
    = (Employee) op2;

        
    // 按姓名排序
        return eOp1.getName().compareTo(eOp2.getName());
      }

    }


    public class SalaryComparator implements Comparator {
      
    public int compare(Object op1, Object op2) {
        Employee eOp1 
    = (Employee) op1;
        Employee eOp2 
    = (Employee) op2;

        
    // 按薪水排序
        return eOp1.getSalary()-(eOp2.getSalary());
      }

    }


    Employee類:

    public class Employee{
      
    protected String name;
      
    protected int age;
      
    protected int salary;
      
      
    public Employee(String name,int age,int salary){
        
    this.name=name;
        
    this.age=age;
        
    this.salary=salary;
      }

      
      
    public int getAge() {
        
    return age;
      }

      
    public void setAge(int age) {
        
    this.age = age;
      }

      
    public String getName() {
        
    return name;
      }

      
    public void setName(String name) {
        
    this.name = name;
      }

      
    public int getSalary() {
        
    return salary;
      }

      
    public void setSalary(int salary) {
        
    this.salary = salary;
      }
     
    }


    測試:
    public class Main{
      
    public static void main(String[] args){
        List
    <Employee> employees=new ArrayList<Employee>();
        
        employees.add(
    new Employee("Andy",21,2000));
        employees.add(
    new Employee("Felix",21,3000));
        employees.add(
    new Employee("Bill",35,20000));
        employees.add(
    new Employee("Helen",21,10000));
        employees.add(
    new Employee("Cindy",28,8000));
        employees.add(
    new Employee("Douglas",25,5000));
            
        
    // 按名稱排序
          Collections.sort(employees,new NameComparator());
          display(employees);

          
    // 按年齡排序
          Collections.sort(employees,new AgeComparator());
          display(employees);
          
          
    // 按薪水排序
          Collections.sort(employees,new SalaryComparator());
          display(employees);
      }

      
      
    public static void display(List<Employee> employees){
        
    for(Employee e:employees){
          System.out.println(
    "雇員名="+e.getName()+" 年齡="+e.age+" 薪水="+e.getSalary());
        }

        
        System.out.println();
      }

    }


    輸出:
    雇員名=Andy 年齡=21 薪水=2000
    雇員名
    =Bill 年齡=35 薪水=20000
    雇員名
    =Cindy 年齡=28 薪水=8000
    雇員名
    =Douglas 年齡=25 薪水=5000
    雇員名
    =Felix 年齡=21 薪水=3000
    雇員名
    =Helen 年齡=21 薪水=10000

    雇員名
    =Andy 年齡=21 薪水=2000
    雇員名
    =Felix 年齡=21 薪水=3000
    雇員名
    =Helen 年齡=21 薪水=10000
    雇員名
    =Douglas 年齡=25 薪水=5000
    雇員名
    =Cindy 年齡=28 薪水=8000
    雇員名
    =Bill 年齡=35 薪水=20000

    雇員名
    =Andy 年齡=21 薪水=2000
    雇員名
    =Felix 年齡=21 薪水=3000
    雇員名
    =Douglas 年齡=25 薪水=5000
    雇員名
    =Cindy 年齡=28 薪水=8000
    雇員名
    =Helen 年齡=21 薪水=10000
    雇員名
    =Bill 年齡=35 薪水=20000


    posted @ 2008-07-15 11:52 sitinspring 閱讀(7599) | 評論 (1)編輯 收藏

    八皇后回溯版

         摘要: 回溯法有“通用的解題法“之稱。用它可以系統(tǒng)的搜索一個(gè)問題的所有解或任一解。會所法是一個(gè)既帶有系統(tǒng)性又帶有跳躍性的搜索算法,他在包含問題的所有解的解空間樹中,按照深度有限的策略,從根節(jié)點(diǎn)出發(fā)搜索解空間樹,算法搜索至解空間樹的任一節(jié)點(diǎn)時(shí),總是先判斷該節(jié)點(diǎn)是否肯定不包含問題的解。如果肯定不包含,則跳過對該節(jié)點(diǎn)為根的子樹的系統(tǒng)搜索,逐層向其祖先節(jié)點(diǎn)回溯,否則進(jìn)入該子樹,繼續(xù)按照深度優(yōu)先的策略進(jìn)行搜索。回溯法在用來求問題的任一接時(shí),只要搜索到問題的一個(gè)解就可以結(jié)束。
    這種深度優(yōu)先的解的算法稱為回溯法,它適合于解一些組合數(shù)較大的問題。

    用回溯法解n皇后問題時(shí),可以用一棵完全n叉樹來表示其解空間。剪去不滿足行列和斜線攻擊的子樹后,剩下的就是問題的解答。
      閱讀全文

    posted @ 2008-07-08 11:38 sitinspring 閱讀(776) | 評論 (0)編輯 收藏

    僅列出標(biāo)題
    共13頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    sitinspring(http://m.tkk7.com)原創(chuàng),轉(zhuǎn)載請注明出處.
    主站蜘蛛池模板: 免费一看一级毛片全播放| 日韩视频在线精品视频免费观看 | 国产成人免费手机在线观看视频| 亚洲日本在线观看| 一级毛片免费毛片一级毛片免费 | 亚洲欧洲在线播放| 91免费人成网站在线观看18| 亚洲精彩视频在线观看| 5555在线播放免费播放| 亚洲美女精品视频| 7723日本高清完整版免费| 亚洲一区二区三区久久久久| 91嫩草国产在线观看免费| 亚洲av永久综合在线观看尤物| av无码国产在线看免费网站| xxx毛茸茸的亚洲| 天天看免费高清影视| 99亚洲精品卡2卡三卡4卡2卡| 国产成人免费一区二区三区| 夜夜爽妓女8888视频免费观看 | 亚洲视频免费在线观看| 亚欧色视频在线观看免费| 亚洲国产区男人本色在线观看| 免费看片免费播放| 一级看片免费视频囗交| 亚洲成色www久久网站夜月| 91人成网站色www免费下载| 久久精品国产亚洲AV久| 免费jjzz在线播放国产| 中文字幕a∨在线乱码免费看| 久久亚洲AV成人无码| 成人免费视频一区二区三区| 免费的黄网站男人的天堂| 久久精品国产亚洲网站| 在线a级毛片免费视频| 日本视频免费观看| 91亚洲导航深夜福利| 国产免费观看黄AV片 | 成人免费午夜在线观看| 一级日本高清视频免费观看 | 亚洲啪啪AV无码片|