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

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

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

    隨筆-1  評論-68  文章-98  trackbacks-0

    作者:徐建祥( netpirate@gmail.com

    時間:2006/09/22

    來自:http://www.anymobile.org

    ?

    1、? 何謂模式

    ?

    “每個模式就是一條由三部分組成的規(guī)則,它表示了一個特定環(huán)境、一個問題和一個解決方案之間的關(guān)系。 ”--《建筑的永恒之道 (Christopher Alexander)

    模式,就是對特定場景中,不斷重復(fù)發(fā)生的問題,以及該問題的解決方案的整體抽象描述。

    ?

    2、? 設(shè)計原則

    ?

    2??????? 開閉原則 (OCP Open-Closed Principle)

    是面向?qū)ο罂蓮?fù)用的基石。模塊、方法和類應(yīng)該對擴展是開放的,而對更改是封閉的;對可變性進行封裝。

    2??????? 里氏代換原則 (LSP Liskov Substitution Principle)

    是繼承復(fù)用的基石。在任何父類出現(xiàn)的地方都可以用它的子類來替代。在實際設(shè)計類的階層體系結(jié)構(gòu)時,這是一條很重要的原則。

    2??????? 依賴反轉(zhuǎn)原則 (DIP Dependence Inversion Principle)

    針對接口編程,要依賴于抽象,不要依賴于具體的實現(xiàn),也叫控制反轉(zhuǎn), IoC

    2??????? 接口隔離原則 (ISP Interface Segregation Principle)

    使用多個專門的接口總是比使用單一的總接口要好。

    2??????? 合成 / 聚合復(fù)用原則 (CARP Composite or Aggregate Reuse Principle)

    聚合:表示擁有或整體與部分的關(guān)系。

    合成:更強的聚合關(guān)系。

    盡量使用和成 / 聚合而不是繼承來實現(xiàn)復(fù)用 , Has-A ”替代“ Is-A ”(繼承)。 ??

    2??????? 迪米特法則 (LoD Law of Demeter)

    一個對象應(yīng)當對其他對象盡可能少的了解。降低各個單元的耦合,提高系統(tǒng)的可維護性。

    ?

    3、? GOF 設(shè)計模式

    ?

    “設(shè)計模式是對被用來在特定場景下解決一般設(shè)計問題的類和相互通信的對象的描述。”--《 Design Patterns ( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides )

    設(shè)計模式充分利用語言優(yōu)勢,站在更高的角度去審視我們的設(shè)計,但是不要為了模式而設(shè)計。

    按照模式的目的和范圍準則, GOF 將眾多的設(shè)計模式分為 3 類,共 23 個設(shè)計模式。

    ?

    3.1 創(chuàng)建型( Creational

    ?

    抽象工廠( Abstract Factory O

    生成器( Builder O

    工廠方法( Factory Method O

    原型( Prototype O

    單件( Singleton O

    ?

    3.2 結(jié)構(gòu)型( Structural

    ?

    適配器( Adapter C O

    橋接( Bridge O

    組合( Composite O

    裝飾( Decorator O

    外觀( Fa?ade O

    享元( Flyweight O

    代理( Proxy O

    ?

    3.3 行為型( Behavioral

    ?

    責(zé)任鏈( Chain Responsibility O

    命令( Command O

    解釋器( Interpreter C

    迭代( Iterator O

    中介者( Mediator O

    備忘錄( Memento O

    觀察者( Observer O

    狀態(tài)( State O

    策略( Strategy O

    模板方法( Template Method C

    訪問者( Visitor O

    ?

    4、? 如何使用設(shè)計模式

    1)????? 學(xué)習(xí)模式,考慮設(shè)計模式是怎樣解決問題以及相互的關(guān)聯(lián)性;

    2)????? 尋找合適的對象,決定對象的粒度,制定對象接口,描述對象之間的關(guān)系;

    3)????? 使用設(shè)計模式進行優(yōu)化,權(quán)衡性能和靈活性;

    4)????? 只有當模式提供的靈活性真正需要時,才有必要使用;

    5)????? 設(shè)計不能遷就模式,模式為設(shè)計服務(wù)。

    ?

    參考:

    Design Patterns Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

    Java 與模式》閻宏

    ?

    posted on 2006-09-22 16:55 Xu Jianxiang 閱讀(323) 評論(0)  編輯  收藏 所屬分類: Design Research
    主站蜘蛛池模板: 国产成人免费手机在线观看视频| 久久免费福利视频| 国产一级大片免费看| 亚洲人成小说网站色| 无码日韩精品一区二区免费| 一区二区三区免费视频观看| 国产18禁黄网站免费观看| 亚洲人AV在线无码影院观看| 好大好深好猛好爽视频免费| 亚洲av无码专区在线观看下载| 国产视频精品免费| 黄页网站在线视频免费| 亚洲一区无码精品色| 久久国产乱子伦精品免费强| 亚洲综合久久成人69| 免费观看成人毛片a片2008| 亚洲国产精华液2020| 亚洲人成网站18禁止一区| 91视频免费网站| 美女被羞羞网站免费下载| 免费国产成人午夜电影| caoporm碰最新免费公开视频| 亚洲精品字幕在线观看| 99re6免费视频| 亚洲日韩AV一区二区三区中文| 全黄a免费一级毛片人人爱| 中文字幕在线免费看| 亚洲精品永久www忘忧草| 天天摸夜夜摸成人免费视频| jizz在线免费观看| 亚洲黄色在线观看视频| 日本大片在线看黄a∨免费 | 亚洲AV成人片无码网站| 中文字幕人成人乱码亚洲电影| 99爱在线精品视频免费观看9| 亚洲色大成网站www永久网站| 国产成人毛片亚洲精品| www视频免费看| 一级做α爱过程免费视频| 亚洲激情黄色小说| 免费少妇a级毛片人成网|