積累,創造,分享!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            25 Posts :: 13 Stories :: 26 Comments :: 0 Trackbacks
          看Larman的UML和模式應用,感覺渾身上下都是寶,一遍兩遍都不過癮。
          這幾天又在看GRASP(general responsibility assignment software patterns的縮寫),把該記的都記一下,加深印象,也與大家分享。網上這方面的資料并不多。
          五個基本模式:information expert,creator,High Conhersion,Low Coupling,Controller

          四個擴展模式:Polymorphism,indirection,pure fabrication,protected variations

          不想一一詳敘,挑重點看。
          1,information expert:把職責分配給具有實現這個職責所需要信息的對象。它表述的是一種“直覺”。
          2,creator:顧名思義,誰應該負責產生類的實例?類B聚合,包含,記錄,密切使用類A的數據。
          3,high conhersion與Low coupling:應該是到了面向對象的高層境界了。高耦合:依賴性過強。內聚:功能性內聚。降低一切不穩定元素之間的耦合。
          4,controller:如果直接通過UI來訪問業務層,后果是不堪想像的。C/S模式的開發中它是用來接收事件的,它通常不實現職責,只是委托給其他對象。在B/S中,我把它理解為serlvet。
          5,polymorphism:多態?這個詞很別扭,一句話解釋:多態是設計系統如何處理相似變化的基本方法。便于擴展,可嵌入。比如以下代碼:

          abstract class Square
          {…
            
          abstract void landedOn();
          …}

          class RegularSquare extends Square
          {…
            
          void landedOn()
           
          { … } // implementation
          }

          class IncomeTaxSquare extends Square
          {…
            
          void landedOn()
           
          { … } // implementation
          }


          6,indirection與pure fabrication:目的無非是為了降低耦合。對象的設計分為兩類:表示分離與行為分解。indirection與pure fabrication都是行為分解的產物。比如說我們常見的DAO模式,我認為就是很好的pure fabrication。
          7,protected variations:書中翻譯為受保護變化。叫做受保護的變化似乎更容易被理解。受保護的變化機制的具體體現:多態,接口,中介,數據封裝。與LSP(liskov替換原理)很相似。

          posted on 2005-11-30 14:11 nighthawk 閱讀(733) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 宝坻区| 博野县| 通江县| 礼泉县| 朔州市| 卫辉市| 宝山区| 开化县| 凤台县| 弥勒县| 蓝山县| 苍南县| 文化| 桂平市| 海城市| 漾濞| 通许县| 静乐县| 苍梧县| 高邮市| 黔西县| 玉屏| 井冈山市| 突泉县| 鸡东县| 凯里市| 皮山县| 裕民县| 邢台县| 海安县| 固始县| 淮滨县| 安仁县| 宁远县| 丹江口市| 措美县| 黎平县| 连平县| 松溪县| 额济纳旗| 青海省|