• <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>

            EverSpring working shop

            To pursue creative ideas based on nature.

            統計

            留言簿(1)

            他山之石

            閱讀排行榜

            評論排行榜

            原則,模式,壞的范例

            (一)7種設計壞味道
            1.僵化性: 很難對系統進行改動,因為每個改動都會迫使許多對系統其他部分的其它改動。
            2.脆弱性: 對系統的改動會導致系統中和改動的地方在概念上無關的許多地方出現問題。
            3.牢固性: 很難解開系統的糾結,使之成為一些可在其他系統中重用的組件。
            4.粘滯性: 做正確的事情比做錯誤的事情要困難。
            5.復雜性(不必要的): 設計中包含有不具任何直接好處的基礎結構。
            6.重復性(不必要的): 設計中包含有重復的結構,而該重復的結構本可以使用單一的抽象進行統一。
            7.晦澀性: 很難閱讀、理解。沒有很好地表現出意圖。

            (二)11種原則 - Principle

            ----類原則
            1.單一職責原則 - Single Responsibility Principle(SRP)
            就一個類而言,應該僅有一個引起它變化的原因。
            (職責即為“變化的原因”。)
            2.開放-封閉原則 - Open Close Principle(OCP)
            軟件實體(類、模塊、函數等)應該是可以擴展的,但是不可修改。
            (對于擴展是開放的,對于更改是封閉的.
            關鍵是抽象.將一個功能的通用部分和實現細節部分清晰的分離開來.
            開發人員應該僅僅對程序中呈現出頻繁變化的那些部分作出抽象.
            拒絕不成熟的抽象和抽象本身一樣重要. )
            3.里氏替換原則 - Liskov Substitution Principle(LSP)
            子類型(subclass)必須能夠替換掉它們的基類型(superclass)。
            4.依賴倒置原則(IoCP) 或 依賴注入原則 - Dependence Inversion Principle(DIP)
            抽象不應該依賴于細節。細節應該依賴于抽象。
            (Hollywood原則: "Don't call us, we'll call you".
            程序中所有的依賴關系都應該終止于抽象類和接口。
            針對接口而非實現編程。
            任何變量都不應該持有一個指向具體類的指針或引用。
            任何類都不應該從具體類派生。
            任何方法都不應該覆寫他的任何基類中的已經實現了的方法。)
            5.接口隔離原則(ISP)
            不應該強迫客戶依賴于它們不用的方法。
            接口屬于客戶,不屬于它所在的類層次結構。
            (多個面向特定用戶的接口勝于一個通用接口。)
            ----包內聚原則
            6.重用發布等價原則(REP)
            重用的粒度就是發布的粒度。
            7.共同封閉原則(CCP)
            包中的所有類對于同一類性質的變化應該是共同封閉的。
            一個變化若對一個包產生影響,
            則將對該包中的所有類產生影響,
            而對于其他的包不造成任何影響。
            8.共同重用原則(CRP)
            一個包中的所有類應該是共同重用的。
            如果重用了包中的一個類,
            那么就要重用包中的所有類。
            (相互之間沒有緊密聯系的類不應該在同一個包中。)
            ----包耦合原則
            9.無環依賴原則(ADP)
            在包的依賴關系圖中不允許存在環。
            10.穩定依賴原則(SDP)
            朝著穩定的方向進行依賴。
            應該把封裝系統高層設計的軟件(比如抽象類)放進穩定的包中,
            不穩定的包中應該只包含那些很可能會改變的軟件(比如具體類)。
            11.穩定抽象原則(SAP)
            包的抽象程度應該和其穩定程度一致。
            (一個穩定的包應該也是抽象的,一個不穩定的包應該是抽象的. )
            ----其它擴展原則----
            12.BBP(Black Box Principle)黑盒原則
            多用類的聚合,少用類的繼承。
            13.DAP(Default Abstraction Principle)缺省抽象原則
            在接口和實現接口的類之間引入一個抽象類,這個類實現了接口的大部分操作.
            14.IDP(Interface Design Principle)接口設計原則
            規劃一個接口而不是實現一個接口。
            15.DCSP(Don't Concrete Supperclass Principle)不要構造具體的超類原則
            避免維護具體的超類。
            16.迪米特法則
            一個類只依賴其觸手可得的類。

            (三)23種設計模式 - Pattern

            創建型
            Abstract Factory(抽象工廠模式) -> (簡單工廠模式)
            Factory Method(工廠模式)
            Builder(生成器模式)
            Singleton(單件模式) -> (多例模式)
            Prototype(原型模式)
            結構型
            Adapter(適配器模式)
            Bridge(橋接模式)
            Composite(組合模式)
            Decorator(裝飾模式)
            Facade(外觀模式,門面模式)
            Flyweight(享元模式) -> (不變模式)
            Proxy(代理模式)
            行為型
            Chain of Responsibility(職責鏈模式)
            Command(命令模式)
            Interpreter(解釋器模式)
            Iteartor(迭代器模式)
            Mediator(中介者模式)
            Memento(備忘錄模式)
            Observer(觀察者模式)
            State(狀態模式)
            Strategy(策略模式)
            TemplateMethod(模板方法模式)
            Visitor(訪問者模式)

            posted on 2008-03-31 21:26 everspring79 閱讀(92) 評論(0)  編輯 收藏 引用

            草草久久久无码国产专区| 天天爽天天爽天天片a久久网| 91久久福利国产成人精品| AAA级久久久精品无码片| 精品久久久久久久| 国产精品99久久久久久猫咪| 热RE99久久精品国产66热| 99久久精品免费看国产一区二区三区 | 日本久久中文字幕| 亚洲AV乱码久久精品蜜桃| 久久免费精品视频| 亚洲欧美另类日本久久国产真实乱对白 | 久久国产亚洲精品无码| 久久久久国产日韩精品网站| 久久久久久久久久久久久久| 久久这里只有精品首页| 77777亚洲午夜久久多喷| 久久久久久综合一区中文字幕 | 人人狠狠综合久久亚洲婷婷| 亚洲精品97久久中文字幕无码| 久久精品国产亚洲AV香蕉| 亚洲精品成人久久久| AAA级久久久精品无码区| 久久精品桃花综合| 青青久久精品国产免费看| 91久久九九无码成人网站 | 国内精品久久久久久久涩爱| 国内精品伊人久久久久AV影院| 久久频这里精品99香蕉久| 伊人久久免费视频| 欧美喷潮久久久XXXXx| 精品无码人妻久久久久久| 99久久免费国产精品热| 亚洲а∨天堂久久精品9966| 久久综合久久自在自线精品自| 国产精品免费看久久久香蕉| 无码人妻久久一区二区三区免费| 久久久久国产视频电影| 91精品国产高清久久久久久io| 伊人久久大香线蕉成人| 国产精品午夜久久|