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

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

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

    海闊天空

    I'm on my way!
    隨筆 - 17, 文章 - 69, 評論 - 21, 引用 - 0
    數據加載中……

    一個合格的程序員應具備的。。。

    每個程序員都應牢記的7種壞味道,11種原則,23種模式

    (一)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(訪問者模式)



    出自:http://www.javaeye.com/topic/41096

    posted on 2009-07-31 20:45 石頭@ 閱讀(320) 評論(0)  編輯  收藏 所屬分類: 基礎技術

    主站蜘蛛池模板: 无码中文字幕av免费放| 九九精品成人免费国产片| 国产桃色在线成免费视频| 亚洲视频一区在线观看| 久热免费在线视频| 亚洲精品无码不卡| 2021在线永久免费视频| 亚洲国产视频一区| 成年女人看片免费视频播放器| 亚洲www在线观看| 在线观看免费宅男视频| 国产亚洲美女精品久久| 亚洲国产日韩在线观频| 成全视成人免费观看在线看| 亚洲精品无码Av人在线观看国产| 成人网站免费看黄A站视频| 亚洲国产精品久久久天堂| 最近中文字幕2019高清免费| 亚洲小说区图片区| 国产网站免费观看| 中文字幕乱理片免费完整的| 亚洲性天天干天天摸| 皇色在线视频免费网站| 久久亚洲精品无码av| 亚洲中文字幕在线观看| 最近免费最新高清中文字幕韩国 | 日韩毛片无码永久免费看| 人妻无码中文字幕免费视频蜜桃 | 一本色道久久综合亚洲精品蜜桃冫| 免费激情视频网站| 91在线免费观看| 色偷偷女男人的天堂亚洲网| 国产一卡二卡≡卡四卡免费乱码| 国产综合免费精品久久久| 亚洲人成在久久综合网站| 亚洲?V无码成人精品区日韩 | 国产免费阿v精品视频网址| 亚洲一区二区三区无码国产| 亚洲 自拍 另类小说综合图区 | 噜噜综合亚洲AV中文无码| 亚洲AV无码乱码国产麻豆穿越|