葉落知秋

          一葉落而知天下秋

          統計

          留言簿(1)

          Java相關

          閱讀排行榜

          評論排行榜

          開放---封閉原則(OCP)


           發表時間: 2008年01月14日


          注:摘自《敏捷軟件開發:原則、模式與實踐》(Robert C. Martin)
          遵循開放封閉原則設計出的模塊具有兩個主要的特征。

          1、“對于擴展是開放的”(Open for extension)
          這意味著模塊的行為是可以擴展的。當應用的需求改變時,我們可以對模塊進行擴展,使其具有滿足那些改變的新行為。換句話說,我們可以改變模塊的功能。

          2、“對于更改是封閉的”(Closed for modification)
          對模塊行為進行擴展時,不必改動模塊的源代碼或者二進制代碼。

          OCP原則關鍵是抽象。
          但對于應用程序中中的每個部分都肆意進行抽象不是一個好主意。正確的做法是,開發人員應該僅僅對程序中呈現出頻繁變化的那些部分作出抽象。拒絕不成熟的抽象和抽象本身一樣重要。

          OCP背后的主要機制是抽象(abstraction)和多態(polymorphism)。在靜態類語言中,比如C++和Java,支持抽象和多態的關鍵機制之一是繼承(inheritance)。正是使用了繼承,我們才可以創建實現其基類(base class)中抽象方法的派生類。

          posted on 2008-01-14 15:35 飛雪連天 閱讀(147) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 平潭县| 木里| 封丘县| 山东省| 安西县| 黄浦区| 山阳县| 荔波县| 禄劝| 浪卡子县| 泸溪县| 大田县| 额尔古纳市| 伊宁县| 运城市| 山阴县| 三台县| 屯昌县| 安岳县| 桂平市| 石柱| 隆昌县| 罗源县| 东宁县| 房山区| 台南县| 文昌市| 宁海县| 安达市| 赤水市| 陈巴尔虎旗| 略阳县| 招远市| 灵台县| 玉环县| 东平县| 瑞金市| 江北区| 林芝县| 潼关县| 称多县|