• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 27  文章 - 88  trackbacks - 0
            <2008年3月>
            2425262728291
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(4)

            文章分類(3)

            文章檔案(3)

            搜索

            •  

            積分與排名

            • 積分 - 130190
            • 排名 - 198

            最新評論

            閱讀排行榜

            評論排行榜

             

            1.“開——閉”原則:講的是,一個軟件應當對擴展開放,對修改關閉。即,在設計一個模塊的時候,應當使這個模塊可以在不被修改的前提下被擴展。換言之,應當可以在不必修改源代碼的情況下改變這個模塊的任務。

            滿足“開——閉”原則的設計可以個一個軟件兩個優越性:

            1) 通過擴展已有的軟件系統,可以提供新的行為,以滿足對軟件新的需求,使變化中的軟件系統有一定的適應性和靈活性。

            2) 已有的軟件模塊,特別是最重要的抽象層模塊不能再修改,這就是使變化中的軟件系統有一定的穩定性和延續性。

             

            2.里氏代換原則:概念:一個軟件實體如果使用的是一個基類的話,那么一定使用其子類,而且它根本不能察覺出基類對象和子類對象的區別。

            里氏代換原則是繼承復用的基石。只有當子類可以替換掉基類,軟件的功能不會受到影響時,基類才能夠在基類的基礎上增加新的行為。

            反過來的代換不成立。

            必須指出,反過來的代換則不成立,即如果一個軟件實例使用的是一個子類的話,那么它不一定使用基類。

             

            3.接口隔離原則:概念:使用專門的接口比使用單一的接口好。從客戶類的角度來講,一個類對另一個類的依賴性應當是建立在最小接口上的。

            “接口”理解為一個類所提供的所有方法的特征的集合,也就是一種邏輯上才存在的概念。

            定制服務

            接口隔離原則講的是為同一個角色提供寬、窄不同的接口,以應對不同的客戶端要求。

            接口污染

            過于臃腫的接口是對接口的污染。

             

            4.合成/聚合復用原則:概念:在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分;新的對象通過向這些對象的委派達到復用已有功能的目的。

            另一種表述為:要盡量使用合成/聚合關系,盡量不要使用繼承關系。

            合成/聚合復用的好處

            1) 新對象存取已有對象的唯一方法是通過已有對象的接口。

            2) 這種復用是黑盒復用,因為已有對象內部細節是新對象所看不見的。

            3) 這種復用所需的依賴較少。

            4) 每一個新的類可以將焦點集中在一個任務上。

            5) 這種復用可以在運行期間內動態進行,新對象可以動態地引用與已有對象類型相同的對象。

            繼承復用的缺點

            1)破壞了包裝,因為繼承將超類的實現細節暴露給子類。由于超類的內部細節常常是對子類透明的,所以又稱為白盒復用。

            2)如果超類的實現發生改變,那么子類的實現也不得不發生改變。因此,當一個基類發生改變時,修改將擴散到每一級子類,設計師將做大量的修改。

            3)從繼承繼承而來的實現是靜態的,不可能在運行時間內發生改變,沒有足夠的靈活性。

             

            5.依賴倒轉原則:概念:要依賴于抽象,不要以來于具體。

            另一種表述為:要針對接口編程,不要針對實現編程。

            只要一個被引用的對象存在抽象類型,就應當在任何引用該對象的地方使用抽象類型,包括參量的類型聲明,方法的返回類型的聲明,屬性變量的類型聲明等。

            怎樣做到依賴倒轉原則

            以抽象方式耦合是依賴倒轉原則的關鍵。由于一個抽象耦合關系總要涉及具體類從抽象類繼承,并且需要保證在任何引用到基類的地方都可以替成其子類,因此,里氏代換原則是依賴倒轉原則的基礎。

            在抽象層次上的耦合雖然有靈活性,但也帶來了額外的復雜性。在某些情況下,如果一個具體類發生變化的可能性非常小,那么抽象耦合能發揮的好處便十分有限,這時使用具體耦合會更好。

             

            6.迪米特法則:又叫做最少知識原則,就是說,一個對象應當對其他對象有盡可能少的了解。

             

            迪米特法則的各種表述:

            1) 只與你直接的朋友們通信

            2) 不要跟“陌生人”說話

            3) 每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關的軟件單位。

            狹義的迪米特法則

            如果兩個類不必彼此直接通信,那么這兩個類就不應當發生直接的相互作用。如果其中的一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。

            狹義迪米特法則的缺點

            遵循狹義的迪米特法則會產生一個明顯的缺點:會在系統里造成大量的小方法,散落在系統的各個角落,這些方法僅僅是傳遞間接的調用,因此與系統的商務邏輯無關。

            朋友的確定

            1) 當前對象本身(this

            2) 以參量形式傳入到當前對象方法中的對象

            3) 當前對象的實例變量直接引用的對象

            4) 當前對象的實例變量如果是一個聚集,那么聚集中的元素也都是朋友

            5) 當前對象所創建的對象

            posted on 2008-03-27 11:57 Macaulish 閱讀(454) 評論(0)  編輯 收藏 引用
            久久久WWW免费人成精品| 久久国产精品国产自线拍免费| 国产精品久久久天天影视香蕉| 久久久WWW免费人成精品| 中文字幕乱码久久午夜| 国产精品美女久久久久| 久久精品一区二区影院| av午夜福利一片免费看久久| 欧美与黑人午夜性猛交久久久| 新狼窝色AV性久久久久久| AAA级久久久精品无码区| 欧洲成人午夜精品无码区久久| 一本大道加勒比久久综合| 77777亚洲午夜久久多人| 久久国产精品无码网站| 欧美丰满熟妇BBB久久久| 日本亚洲色大成网站WWW久久| 国产成年无码久久久久毛片 | 伊人久久大香线蕉av不卡| 久久er热视频在这里精品| 99蜜桃臀久久久欧美精品网站| 欧美激情精品久久久久| 久久精品人人槡人妻人人玩AV| 欧美成人免费观看久久| 久久国产三级无码一区二区| 伊人久久综在合线亚洲2019| 97久久精品午夜一区二区| 久久久久人妻一区二区三区| 久久天天躁狠狠躁夜夜av浪潮| 国产精品无码久久久久| 成人久久精品一区二区三区 | 久久精品国产亚洲av麻豆蜜芽| 精品久久久久中文字幕一区| 久久青草国产手机看片福利盒子| 久久综合狠狠综合久久综合88 | 亚洲国产成人精品久久久国产成人一区二区三区综 | 日韩久久久久中文字幕人妻| 久久综合成人网| 欧美日韩精品久久久免费观看| 美女久久久久久| 久久无码AV一区二区三区|