• <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年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(4)

            文章分類(3)

            文章檔案(3)

            搜索

            •  

            積分與排名

            • 積分 - 130159
            • 排名 - 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 閱讀(453) 評論(0)  編輯 收藏 引用
            久久久久国产精品| 久久亚洲精品无码aⅴ大香| 久久亚洲日韩精品一区二区三区| 热re99久久精品国99热| 久久久久久毛片免费播放| 亚洲综合精品香蕉久久网97| 无码任你躁久久久久久久| 伊人久久无码中文字幕| 99久久精品国产一区二区| 少妇久久久久久被弄到高潮 | 久久这里只有精品久久| 久久久WWW成人| 9久久9久久精品| 久久精品国产2020| 国产高清美女一级a毛片久久w| 久久精品国产亚洲av麻豆图片| 青青青国产精品国产精品久久久久| 亚洲精品NV久久久久久久久久| 久久99国产精品99久久| 久久无码专区国产精品发布| 狠狠综合久久综合中文88 | 99久久免费国产精精品| 久久亚洲国产成人影院| 久久久国产精品| 91精品国产综合久久香蕉| 国内精品久久久久久久97牛牛| 人妻无码精品久久亚瑟影视 | 久久精品国产亚洲av麻豆小说| 国产亚洲精久久久久久无码77777| 狠狠综合久久综合中文88 | 国产伊人久久| 一级做a爰片久久毛片16| 日日躁夜夜躁狠狠久久AV| 2021久久精品免费观看| 精品久久久久久无码不卡| 一本久久精品一区二区| 一本大道久久香蕉成人网| 女人高潮久久久叫人喷水| 国产精品久久久久久久app | 99久久99久久精品国产| 国产无套内射久久久国产|