積累,創造,分享!

          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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 潮安县| 万宁市| 抚远县| 和顺县| 莎车县| 陈巴尔虎旗| 瑞安市| 福建省| 博兴县| 武义县| 定西市| 平南县| 定南县| 图们市| 宜兰市| 宣恩县| 辽阳市| 平塘县| 武川县| 宾阳县| 和静县| 安吉县| 增城市| 卢龙县| 和林格尔县| 边坝县| 大兴区| 绥化市| 淳安县| 永安市| 高青县| 荔浦县| 普兰县| 曲水县| 彭州市| 荆门市| 望江县| 淮南市| 翼城县| 隆德县| 通城县|