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

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

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

    posts - 431,  comments - 344,  trackbacks - 0

    7種設計壞味道
    1.僵化性: 很難對系統(tǒng)進行改動,因為每個改動都會迫使許多對系統(tǒng)其他部分的其它改動。

    2.脆弱性: 對系統(tǒng)的改動會導致系統(tǒng)中和改動的地方在概念上無關的許多地方出現(xiàn)問題。

    3.牢固性: 很難解開系統(tǒng)的糾結,使之成為一些可在其他系統(tǒng)中重用的組件。

    4.粘滯性: 做正確的事情比做錯誤的事情要困難。

    5.復雜性(不必要的): 設計中包含有不具任何直接好處的基礎結構。

    6.重復性(不必要的): 設計中包含有重復的結構,而該重復的結構本可以使用單一的抽象進行統(tǒng)一。

      7.晦澀性: 很難閱讀、理解。沒有很好地表現(xiàn)出意圖。

    11種原則 - Principle

    ----類原則

    1.單一職責原則 - Single Responsibility Principle(SRP)

    就一個類而言,應該僅有一個引起它變化的原因。

    (職責即為變化的原因。)

    2.開放-封閉原則 - Open Close Principle(OCP)

    軟件實體(類、模塊、函數(shù)等)應該是可以擴展的,但是不可修改。

    (對于擴展是開放的,對于更改是封閉的.

    關鍵是抽象.將一個功能的通用部分和實現(xiàn)細節(jié)部分清晰的分離開來.

    開發(fā)人員應該僅僅對程序中呈現(xiàn)出頻繁變化的那些部分作出抽象.

    拒絕不成熟的抽象和抽象本身一樣重要. )

    3.里氏替換原則 - Liskov Substitution Principle(LSP)

    子類型(subclass)必須能夠替換掉它們的基類型(superclass)。

    4.依賴倒置原則(IoCP) 或 依賴注入原則 - Dependence Inversion Principle(DIP)

    抽象不應該依賴于細節(jié)。細節(jié)應該依賴于抽象。

    (Hollywood原則: "Don't call us, we'll call you".

    程序中所有的依賴關系都應該終止于抽象類和接口。

    針對接口而非實現(xiàn)編程。

    任何變量都不應該持有一個指向具體類的指針或引用。

    任何類都不應該從具體類派生。

    任何方法都不應該覆寫他的任何基類中的已經(jīng)實現(xiàn)了的方法。)

    5.接口隔離原則(ISP)

    不應該強迫客戶依賴于它們不用的方法。

    接口屬于客戶,不屬于它所在的類層次結構。

    (多個面向特定用戶的接口勝于一個通用接口。)

    ----包內(nèi)聚原則

    6.重用發(fā)布等價原則(REP)

    重用的粒度就是發(fā)布的粒度。

    7.共同封閉原則(CCP)

    包中的所有類對于同一類性質的變化應該是共同封閉的。

    一個變化若對一個包產(chǎn)生影響,

    則將對該包中的所有類產(chǎn)生影響,

    而對于其他的包不造成任何影響。

    8.共同重用原則(CRP)

    一個包中的所有類應該是共同重用的。

    如果重用了包中的一個類,

    那么就要重用包中的所有類。

    (相互之間沒有緊密聯(lián)系的類不應該在同一個包中。)

    ----包耦合原則

    9.無環(huán)依賴原則(ADP)

    在包的依賴關系圖中不允許存在環(huán)。

    10.穩(wěn)定依賴原則(SDP)

    朝著穩(wěn)定的方向進行依賴。

    應該把封裝系統(tǒng)高層設計的軟件(比如抽象類)放進穩(wěn)定的包中,

    不穩(wěn)定的包中應該只包含那些很可能會改變的軟件(比如具體類)。

    11.穩(wěn)定抽象原則(SAP)

    包的抽象程度應該和其穩(wěn)定程度一致。

    (一個穩(wěn)定的包應該也是抽象的,一個不穩(wěn)定的包應該是抽象的. )

    ----其它擴展原則----

    12.BBP(Black Box Principle)黑盒原則

    多用類的聚合,少用類的繼承。

    13.DAP(Default Abstraction Principle)缺省抽象原則

    在接口和實現(xiàn)接口的類之間引入一個抽象類,這個類實現(xiàn)了接口的大部分操作.

    14.IDP(Interface Design Principle)接口設計原則

    規(guī)劃一個接口而不是實現(xiàn)一個接口。

    15.DCSP(Don't Concrete Supperclass Principle)不要構造具體的超類原則

    避免維護具體的超類。

    16.迪米特法則

    一個類只依賴其觸手可得的類。
    posted on 2006-12-28 09:33 周銳 閱讀(233) 評論(0)  編輯  收藏 所屬分類: Other
    主站蜘蛛池模板: 亚洲一区二区三区精品视频| 深夜免费在线视频| 永久免费av无码入口国语片| 全免费a级毛片免费看无码| 久久99国产亚洲精品观看| 日韩免费在线中文字幕| 国产精品无码免费播放| 亚洲AV本道一区二区三区四区| 免费人成大片在线观看播放| 成人免费无码大片a毛片软件| 亚洲一二成人精品区| 一级做性色a爰片久久毛片免费| 成人免费在线观看网站| 亚洲综合色一区二区三区小说| 91av免费在线视频| 国产午夜免费福利红片| 亚洲毛片基地4455ww| 91禁漫免费进入| 亚洲成av人在线视| 九九热久久免费视频| 亚洲AⅤ优女AV综合久久久| 亚洲熟妇成人精品一区| 性色午夜视频免费男人的天堂| 亚洲日韩欧洲无码av夜夜摸| 日韩毛片免费一二三| 日韩一级视频免费观看| 中文字幕亚洲码在线| 成人免费大片免费观看网站| 久久亚洲中文字幕精品有坂深雪| 久久免费观看视频| 亚洲综合色区在线观看| 激情吃奶吻胸免费视频xxxx| 国产精品va无码免费麻豆| 亚洲综合一区无码精品| 最新欧洲大片免费在线 | 日韩免费电影网站| 亚洲一区二区三区无码中文字幕| 一个人晚上在线观看的免费视频 | 国产三级免费电影| 日韩在线视精品在亚洲| 国产男女猛烈无遮挡免费视频 |