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

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

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

    2008年8月11日

    模式筆記五: 創建型模式

    =單例模式=

    單例模式需要考慮的重要問題是其生存周期問題,一種是不死鳥,永遠不銷毀,最為簡單,但是占用了資源
    另一種是有生存周期, 但是又要考慮其引用可能無效的問題
    * Lifetime: Dead reference
    * Double check locking

    =工廠模式=
    工廠模式是很常用的模式, 常見的有
    *簡單工廠
    *抽象工廠



    *工廠方法



    =生成器模式=


    =原型模式=


    這里只是簡單地用相應類圖來表示, 個中滋味, 在應用中自己慢慢體會吧
    相似的一點是抽象的東西有具體的實現, 至于到底用哪個具體的實現, 交給工廠來創建吧
    至于這個工廠, 視問題域的復雜性,可以是抽象的, 也可以是具體的,工廠模式大體如此

    posted @ 2008-08-11 17:19 fantasyamin 閱讀(203) | 評論 (0)編輯 收藏

    模式筆記四:GRASP模式概論

    General Responsibility Assignment Software Patterns  通用職責分配軟件模式

    模式名稱

    描述(問題/解決方案)

    信息專家模式Information Expert

    問題:對象設計和職責分配的一般原則是什么?
    解決方案:將職責分配給擁有履行一個職責所必需信息的類--即信息專家。(也就是將職責分配給一個類,這個類必須擁有履行這個職責所需要的信息。)

    創建者模式Creator

    問題:誰應該負責產生類的實例(對應于GoF設計模式系列里的工廠模式
    解決方案:如果符合下面的一個或多個條件,則將創建類A實例的職責分配給類B.
    .
    B聚合類A的對象。
    .
    B包含類A的對象。
    .
    B記錄類A對象的實例。
    .
    B密切使用類A的對象。
    .
    B初始化數據并在創建類A的實例時傳遞給類A(類B是創建類A實例的一個專家)
    在以上情況下,類B是類A對象的創建者。

    控制器模式

    Controller

    問題:誰處理一個系統事件?
    解決方案:當類代表下列一種情況時,為它分配處理系統事件消息的職責。
    .
    代表整個系統、設備或子系統(外觀控制器)。
    .
    代表系統事件發生的用例場景(用例或回話控制器)。

    低耦合Low Coupling

     

    問題:如何支持低依賴性以及增加重用性?
    解決方案:分配職責時使(不必要的)耦合保持為最低。

    高內聚High Cohesion

     

    問題:如何讓復雜性可管理?
    解決方案:分配職責時使內聚保持為最高。

    多態模式Polymorphism

    問題:當行為隨類型變化而變化時誰來負責處理這些變化?
    解決方案:當類型變化導致另一個行為或導致行為變化時,應用多態操作將行為的職責分配到引起行為變化的類型。

    純虛構模式Pure Fabrication

    問題:當不想破壞高內聚和低耦合的設計原則時,誰來負責處理這些變化?
    解決方案:將一組高內聚的職責分配給一個虛構的或處理方便的行為類,它并不是問題域中的概念,而是虛構的事務,以達到支持高內聚、低耦合和重用的目的。

    中介模式Indirection

    問題:如何分配職責以避免直接耦合?
    解決方案:分配職責給中間對象以協調組件或服務之間的操作,使得它們不直接耦合。

    受保護變化模式Protected Variations

    問題:如何分配職責給對象、子系統和系統,使得這些元素中的變化或不穩定的點不會對其他元素產生不利影響?
    解決方案:找出預計有變化或不穩定的元素,為其創建穩定的接口而分配職責。

    這些更象是一些OOD的原則, 模式會有很多, 但是萬變不離其宗, 大都遵循著一些基本的原則
    • OCP(Open-Closed Principle)
    • DIP(Dependency Inversion Principle)
    • LSP(Liskov Substitution Principle)
    • ISP(Interface Insolation Principle)
    • SRP(Single Resposibility Principle)
    • CARP(Composite/Aggregate Reuse Principle)
    • LoD(Law Of Demeter):don't talk to stranger
    之后我們來詳細討論這些原則

    posted @ 2008-08-11 15:27 fantasyamin 閱讀(738) | 評論 (0)編輯 收藏

    <2008年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 最新国产精品亚洲| 国产特黄特色的大片观看免费视频| 成人毛片免费视频| 羞羞视频免费网站日本| 久久伊人久久亚洲综合| 在线免费观看一级毛片| 一本久久免费视频| 亚洲国产综合在线| 亚洲精品国产成人影院| 2021免费日韩视频网| 全部在线播放免费毛片| 久久亚洲AV无码精品色午夜麻豆| 在线观看国产情趣免费视频| 免费人成激情视频在线观看冫| 中文有码亚洲制服av片| 亚洲色婷婷一区二区三区| 最近中文字幕无免费视频| 久久青青草原国产精品免费| 亚洲AV色欲色欲WWW| 亚洲精品熟女国产| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 亚洲Av无码专区国产乱码DVD | 国产日韩在线视频免费播放| 亚洲丝袜中文字幕| 亚洲性猛交XXXX| 国产免费一区二区三区VR| 91热成人精品国产免费| 91成人免费观看在线观看| 亚洲AV成人无码网站| 亚洲精品美女在线观看| 亚洲成色www久久网站夜月| 国产又大又黑又粗免费视频| 成年人免费的视频| 免费日本一区二区| www成人免费观看网站| 亚洲熟妇无码AV不卡在线播放| 亚洲综合国产精品| 国产亚洲精品无码拍拍拍色欲| 国产免费131美女视频| 久久久久久国产a免费观看黄色大片 | 亚洲精品无码久久久久久久|