<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、? 何謂模式

    ?

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

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

    ?

    2、? 設計原則

    ?

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

    是面向對象可復用的基石。模塊、方法和類應該對擴展是開放的,而對更改是封閉的;對可變性進行封裝。

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

    是繼承復用的基石。在任何父類出現的地方都可以用它的子類來替代。在實際設計類的階層體系結構時,這是一條很重要的原則。

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

    針對接口編程,要依賴于抽象,不要依賴于具體的實現,也叫控制反轉, IoC

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

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

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

    聚合:表示擁有或整體與部分的關系。

    合成:更強的聚合關系。

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

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

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

    ?

    3、? GOF 設計模式

    ?

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

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

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

    ?

    3.1 創建型( Creational

    ?

    抽象工廠( Abstract Factory O

    生成器( Builder O

    工廠方法( Factory Method O

    原型( Prototype O

    單件( Singleton O

    ?

    3.2 結構型( Structural

    ?

    適配器( Adapter C O

    橋接( Bridge O

    組合( Composite O

    裝飾( Decorator O

    外觀( Fa?ade O

    享元( Flyweight O

    代理( Proxy O

    ?

    3.3 行為型( Behavioral

    ?

    責任鏈( Chain Responsibility O

    命令( Command O

    解釋器( Interpreter C

    迭代( Iterator O

    中介者( Mediator O

    備忘錄( Memento O

    觀察者( Observer O

    狀態( State O

    策略( Strategy O

    模板方法( Template Method C

    訪問者( Visitor O

    ?

    4、? 如何使用設計模式

    1)????? 學習模式,考慮設計模式是怎樣解決問題以及相互的關聯性;

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

    3)????? 使用設計模式進行優化,權衡性能和靈活性;

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

    5)????? 設計不能遷就模式,模式為設計服務。

    ?

    參考:

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

    Java 與模式》閻宏

    ?

    posted on 2006-09-22 16:55 Xu Jianxiang 閱讀(322) 評論(0)  編輯  收藏 所屬分類: Design Research
    主站蜘蛛池模板: 亚洲日本VA午夜在线影院| 精品亚洲麻豆1区2区3区| 亚洲国产成人久久精品软件| 久久久久亚洲AV无码永不| 日批视频网址免费观看| 67194熟妇在线永久免费观看| 亚洲丝袜美腿视频| 亚洲国产精品一区二区三区在线观看| 中文字幕免费在线观看| 免费国产在线观看不卡| 美女被艹免费视频| 国产成人毛片亚洲精品| 亚洲 暴爽 AV人人爽日日碰 | 97久久国产亚洲精品超碰热| 国产福利在线免费| 亚洲国产欧美国产综合一区| 四虎永久免费观看| 亚洲国产最大av| 午夜毛片不卡免费观看视频| 精品国产日韩亚洲一区在线| 国内精自视频品线六区免费| 中文字幕无码亚洲欧洲日韩| 日韩精品成人亚洲专区| 中文字字幕在线高清免费电影| 人人狠狠综合久久亚洲高清| a在线视频免费观看| 亚洲国产一区二区视频网站| 97国免费在线视频| 亚洲国产成人精品久久| 未满十八18禁止免费无码网站| 亚洲性69影院在线观看| 免费夜色污私人影院在线观看| 日韩精品免费视频| 亚洲精品乱码久久久久久中文字幕 | 四虎影视永久在线精品免费| 亚洲av永久无码精品秋霞电影影院 | 色欲色欲天天天www亚洲伊| 亚洲黄色免费网址| 香蕉视频在线观看亚洲| 成年女人18级毛片毛片免费| 国产精品一区二区三区免费|