Mark's Java Blog
          MyEclipse, Java EE, Spring, Struts, Hibernate, JPA, SWT, Swing, AJAX, JavaScript,SOA

          導(dǎo)航

          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345
          統(tǒng)計
          • 隨筆 - 30
          • 文章 - 1
          • 評論 - 16
          • 引用 - 0

          常用鏈接

          留言簿(1)

          隨筆分類(32)

          隨筆檔案(30)

          文章檔案(1)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 29852
          • 排名 - 1393

          最新評論

          閱讀排行榜

          評論排行榜

           
          封裝類要保證封裝內(nèi)容的高度統(tǒng)一性,這些方法都大大簡化了類封裝的可維護(hù)性和重調(diào)用性。
            可維護(hù)性
            既然大家都知道重載是面向?qū)ο蟪绦蛟O(shè)計的很重要組成部分,那么你可以看出軟件的可維護(hù)性的重要性。如果能正確地封裝類,你就可以減少很多函數(shù)的更改。
            
            在同一封裝里嚴(yán)密地聯(lián)結(jié)各個類
            嚴(yán)密地聯(lián)結(jié)封裝中的各個類可以得到高凝聚的封裝。如果兩個類展示出很好的聯(lián)結(jié)性,那么這兩個類很有可能被經(jīng)常地調(diào)用以提供聯(lián)系方便的服務(wù)。所以當(dāng)在設(shè)計你的封裝時,你可以最大限度地減小封裝之間的依靠性,以避免各個封裝的沖突。
            
            在同一封裝里類要統(tǒng)一改變
            顯然的,當(dāng)其他類改變時,各個嚴(yán)密結(jié)合的類也同樣受到影響。任一個類的更改都會導(dǎo)致與這一類相關(guān)的類的相應(yīng)更改,至少,類中的函數(shù)必須更改。你可以通過在同一封裝里嚴(yán)密聯(lián)結(jié)類來避免這些風(fēng)險。
            
            然而,一些聯(lián)結(jié)不嚴(yán)密的類也被工程的其他改變而改變。在這樣的情況下,你應(yīng)該把這些類放在同一封裝。因為獨立的類改變時,它們會產(chǎn)生其他的負(fù)影響。
            
            在不同封裝里類不要一起調(diào)用
            封裝啟發(fā)的可行性取決于是否封裝能提供真正的聯(lián)結(jié)。即使類能經(jīng)常地一起被調(diào)用,它們卻不能一起被改變。所認(rèn)你必須把這些類進(jìn)行獨立封裝。當(dāng)然,這就意味著引入多個封裝來調(diào)用獨立的類。這一方法的優(yōu)點是顯而易見的。
            
            在一個封裝里對一個類的依賴也會產(chǎn)生對其他類的依賴,這是必然的。當(dāng)封裝中一個類改變時,整個封裝都會發(fā)生變化。
            
            在不同封裝里類不要一起重載
            不幸的是,即使在初始化時,一個類對象不能允許它自己去調(diào)用不同的類,就給軟件升級帶來不利,這樣軟件的可維護(hù)性就變得非常很重要。所以在不同的封裝里,獨立的類重載是一個最有效的方法。
            
            關(guān)鍵的注意事項
            在Java程序設(shè)計時,你必須注意以下幾點:
            
            Containing Change ––––封裝各個類到一個單一的封裝里能減少很多更改,把所有改變都集中到一個封裝里有助于軟件的可維護(hù)性。
            
            Class coupling –––––當(dāng)在同一封裝里聯(lián)結(jié)類時,你應(yīng)該注意到其他類也有可能和這一個類有關(guān)。忽視這些聯(lián)系會產(chǎn)生很多不必要的關(guān)聯(lián)。
            
            Contention ––––– 前兩個啟發(fā)產(chǎn)生比較大的封裝,目的是調(diào)用;后兩個啟發(fā)產(chǎn)生比較小的封裝,目的是可維護(hù)。這前后的封裝會發(fā)生沖突。在開發(fā)過程中,你必須在程序結(jié)構(gòu)上作出相應(yīng)的改變。在程序設(shè)計開發(fā)初期,你應(yīng)該選擇利于軟件可維護(hù)性的比較小的封裝;當(dāng)在開發(fā)后期,你應(yīng)該選擇利于軟件調(diào)用的比較大的封裝。
            
            調(diào)用
            當(dāng)設(shè)計程序框架時,你應(yīng)該集中于封裝的調(diào)用,因為Java封裝的調(diào)用和可維護(hù)非常的重要。當(dāng)設(shè)計合理,程序就很容易的支持封裝的調(diào)用功能。
          posted on 2008-03-17 11:44 Mark 閱讀(1109) 評論(0)  編輯  收藏 所屬分類: Java SE
           
          主站蜘蛛池模板: 温宿县| 德昌县| 千阳县| 宜宾市| 丹棱县| 翁源县| 菏泽市| 右玉县| 兴安县| 东台市| 大新县| 天峻县| 灵宝市| 德阳市| 赤城县| 屏南县| 西畴县| 工布江达县| 饶河县| 灌南县| 清水河县| 邹城市| 沐川县| 余庆县| 蕉岭县| 公安县| 资兴市| 武陟县| 高淳县| 新晃| 县级市| 南召县| 天祝| 绥宁县| 北辰区| 三门峡市| 壶关县| 宾阳县| 台北市| 漯河市| 东乡族自治县|