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

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

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

    當(dāng)前訪問(wèn)本站: hits

    yjhmily

    堅(jiān)持走自己的路……

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks

    此文出處:http://www.javaeye.com/topic/41096

    每個(gè)程序員都應(yīng)牢記的7種壞味道,11種原則,23種模式

    (一)7種設(shè)計(jì)壞味道
    1.僵化性: 很難對(duì)系統(tǒng)進(jìn)行改動(dòng),因?yàn)槊總€(gè)改動(dòng)都會(huì)迫使許多對(duì)系統(tǒng)其他部分的其它改動(dòng)。
    2.脆弱性: 對(duì)系統(tǒng)的改動(dòng)會(huì)導(dǎo)致系統(tǒng)中和改動(dòng)的地方在概念上無(wú)關(guān)的許多地方出現(xiàn)問(wèn)題。
    3.牢固性: 很難解開(kāi)系統(tǒng)的糾結(jié),使之成為一些可在其他系統(tǒng)中重用的組件。
    4.粘滯性: 做正確的事情比做錯(cuò)誤的事情要困難。
    5.復(fù)雜性(不必要的): 設(shè)計(jì)中包含有不具任何直接好處的基礎(chǔ)結(jié)構(gòu)。
    6.重復(fù)性(不必要的): 設(shè)計(jì)中包含有重復(fù)的結(jié)構(gòu),而該重復(fù)的結(jié)構(gòu)本可以使用單一的抽象進(jìn)行統(tǒng)一。
    7.晦澀性: 很難閱讀、理解。沒(méi)有很好地表現(xiàn)出意圖。

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

    (三)23種設(shè)計(jì)模式 - Pattern.
    創(chuàng)建型
    Abstract Factory(抽象工廠模式) -> (簡(jiǎn)單工廠模式)
    Factory Method(工廠模式)
    Builder(生成器模式)
    Singleton(單件模式) -> (多例模式)
    Prototype(原型模式)
    結(jié)構(gòu)型
    Adapter(適配器模式)
    Bridge(橋接模式)
    Composite(組合模式)
    Decorator(裝飾模式)
    Facade(外觀模式,門(mén)面模式)
    Flyweight(享元模式) -> (不變模式)
    Proxy(代理模式)
    行為型
    Chain of Responsibility(職責(zé)鏈模式)
    Command(命令模式)
    Interpreter(解釋器模式)
    Iteartor(迭代器模式)
    Mediator(中介者模式)
    Memento(備忘錄模式)
    Observer(觀察者模式)
    State(狀態(tài)模式)
    Strategy(策略模式)
    TemplateMethod(模板方法模式)
    Visitor(訪問(wèn)者模式)

    posted on 2006-12-28 09:42 kangxm 閱讀(903) 評(píng)論(0)  編輯  收藏 所屬分類: 轉(zhuǎn)載篇
    主站蜘蛛池模板: 亚洲日韩一页精品发布| 无码少妇一区二区浪潮免费| selaoban在线视频免费精品| 天天综合亚洲色在线精品| 亚洲AV无码国产精品永久一区| 亚洲国产成人精品青青草原| 亚洲成年人电影网站| 亚洲一区二区免费视频| 激情五月亚洲色图| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲性线免费观看视频成熟| 亚洲另类无码一区二区三区| 国产精品亚洲精品爽爽| 欧洲乱码伦视频免费国产 | 国产亚洲精品免费视频播放| 国产亚洲精品自在线观看| 亚洲午夜久久久久久噜噜噜| 久久精品国产亚洲综合色| 久久精品国产亚洲夜色AV网站| 亚洲久本草在线中文字幕| 亚洲女人影院想要爱| 亚洲中文字幕无码爆乳| 污污免费在线观看| 99在线免费观看| 2021精品国产品免费观看| 无码日韩人妻av一区免费| 国产伦精品一区二区三区免费下载 | CAOPORN国产精品免费视频| 精品国产免费一区二区三区香蕉| 青青草无码免费一二三区| 免费视频爱爱太爽了| 午夜视频在线在免费| 亚洲黄黄黄网站在线观看| 亚洲精品国产品国语在线| 亚洲最大免费视频网| 亚洲av中文无码乱人伦在线观看| 污污免费在线观看| 久久久久久夜精品精品免费啦| 野花高清在线观看免费3中文| 免费A级毛片无码A∨男男| 亚洲国产日韩在线视频|