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

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

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

    Roger Tu

    A simple boy living a simple life in every simple day...

       ::  :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      7 隨筆 :: 0 文章 :: 19 評論 :: 0 Trackbacks

    好的系統設計追求如下特性:

    •   可擴展性(Extensibility):新的功能或特性很容易加入到系統中來;
    •   靈活性(Flexibility):可以允許代碼修改平穩發生,對一處的修改不會波及到很多其他模塊;
    •   可插入性(Pluggability):可以很容易地將一個類或組件抽出去,同時將另一個有相同接口的類/接口加入進來。

       具有如上特性的系統才有真正的可維護性和可復用性。而可維護性和可復用性對一個持續接入新需求,現有功能逐步完善,新功能不斷豐富,版本不會終止的大型軟件產品來說至關重要。

       傳統的復用包括:代碼的copy復用,算法的復用,數據結構的復用。

       在面向對象領域,數據的抽象化、封裝、繼承和多態性是幾項最重要的語言特性,這些特性使得一個系統可以在更高的層次上提供可復用性。數據的抽象化和繼承關系使得概念和定義可以復用;多態性使得實現和應用可以復用;而抽象化和封裝可以保持和促進系統的可維護性。這樣,復用的焦點不再集中在函數和算法等具體實現細節上,而是集中在最重要的宏觀的業務邏輯的抽象層次上。復用焦點的倒轉不是因為實現細節的復用不再重要,而是因為這些細節上的復用往往已經做的很好(例如,很容易找到并應用成熟的數據結構類庫等),而真正沖擊系統的是其要實現業務的千變萬化。

       本質上說,如果說一個軟件的需求是永不變更或發展的,該軟件也就不需要任何設計,怎么編碼實現都行,只要需求滿足,性能達標。但事實上,軟件的本性就是不斷增強,不斷擴展,不斷變化的。我們可以控制指尖流淌出的每行代碼,但控制不了奉為上帝的用戶的需求。編碼結束,測試通過,用戶在使用過程中才發現原來的需求有問題,要變更需要或提出新需求,怎么辦?向用戶抗議:需求總在變,沒法做!?平抑心中的抱怨,加班加點大量的修改代碼,瘋狂的測試,依然是時間緊迫,心中沒底?抑或了然于胸:這個變更或新需求合理,系統很方便納入;于是坦然地和用戶協商下一個交付時間點?

       要使系統最大程度的適應需求的變更或新增,就必須在其要實現的宏觀業務邏輯的抽象復用上下功夫。而設計模式就是綜合運用面向對象技術和特性來提高業務邏輯可復用性的常用方法和經驗的提取和匯總。掌握23種設計模式的關鍵是理解它們的共通目的:使所設計的軟件系統在一般或特定(系統將來在特定點上需要擴展的可能性大)場景下,盡可能的對擴展開放,對修改關閉。即面對新需求或需求變更,容易開發獨立于既有代碼的新代碼接入到現有系統或對現有代碼做可控的少量修改,而不是在現有代碼基礎上做大量的增、刪、改。為了這一目的,23種設計模式貫穿了面向對象編程的基本原則:

    •    面向接口或抽象編程,而不是面向實現編程。
    posted on 2007-03-23 00:25 RogerTu 閱讀(2001) 評論(2)  編輯  收藏 所屬分類: Programming Thought

    評論

    # re: 設計模式基本思想 2007-03-23 03:34 喜來樂哈哈
    >> 盡量不要使用繼承,而是使用組合

    組合并不一定優于繼承,該用繼承的時候還是要用繼承的,特別是當滿足Substitution原理時。

    以前的OO界過于強調繼承,現在則過于強調組合。其實任何一個OO的系統都使用到繼承和組合。

      回復  更多評論
      

    # re: 設計模式基本思想 2009-05-23 19:14 cxf
    寫的不錯。  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 国产精品免费一区二区三区四区| 精品国产日韩亚洲一区91| 国产日韩AV免费无码一区二区三区| 24小时日本在线www免费的| 亚洲欧洲日韩国产一区二区三区| 无码av免费毛片一区二区| 亚洲综合免费视频| 午夜国产精品免费观看| 中文字幕乱码亚洲无线三区| 可以免费看的卡一卡二| 亚洲AV成人精品日韩一区| 一本色道久久88亚洲综合| 一级黄色免费毛片| 久久亚洲精品成人综合| 波多野结衣中文字幕免费视频| 学生妹亚洲一区二区| 国产成人免费永久播放视频平台| 老司机午夜在线视频免费| 区久久AAA片69亚洲| 99精品在线免费观看| 亚洲AV色吊丝无码| 国产成人免费高清在线观看| 国产黄色免费观看| 91精品国产亚洲爽啪在线观看| 韩国免费一级成人毛片| 免费国产高清毛不卡片基地| 亚洲一区二区三区在线观看精品中文| 日韩精品免费在线视频| 亚洲妇女熟BBW| 久久久无码精品亚洲日韩软件| 午夜无码A级毛片免费视频| 国产精品亚洲四区在线观看| 免费萌白酱国产一区二区| 香蕉免费一区二区三区| 亚洲成a人无码亚洲成av无码| 久久夜色精品国产亚洲av| 国产91色综合久久免费| 狠狠热精品免费观看| 亚洲自偷自偷精品| 免费人成在线观看播放国产| 无码国产精品一区二区免费模式 |