text: 在面向物件程式設計領域中，開閉原則 (The Open/Closed Principle, OCP) 規定“軟體中的物件應該對於擴充套件是開放的，但是對於修改是封閉的”，這意味著一個實體是允許在不改變它的原始碼的前提下變更它的行為。該特性在產品化的環境中是特別有價值的，在這種環境中，改變原始碼需要程式碼審查，單元測試以及諸如此類的用以確保產品使用品質的過程。遵循這種原則的程式碼在擴充套件時並不發生改變，因此無需上述的過程。開閉原則的命名被應用在兩種方式上。這兩種方式都使用了繼承來解決明顯的困境，但是它們的目的，技術以及結果是不同的。梅耶開閉原則.伯特蘭·邁耶一般被認為是最早提出開閉原則這一術語的人，在他1988年發行的《面向物件軟體構造》中給出。這一想法認為一旦完成一個類的實現只應該因錯誤而修改，新的或者改變的特性應該透過新建不同的類實現。新建的類可以透過繼承的方式來重用原類的程式碼。衍生的子類可以或不可以擁有和原類相同的介面。梅耶的定義提倡實現繼承。具體實現可以透過繼承方式來重用，但是介面規格不必如此。已存在的實現對於修改是封閉的，但是新的實現不必實現原有的介面。多型開閉原則.在20世紀90年代，由於抽象化介面的使用，開閉原則被廣泛的重新定義。在這中間實現可以被改變，多種實現可以被建立，並且多型的替換不同的實現。相比梅耶的使用方式，多型開閉原則的定義倡導對抽象基類的繼承。介面規約可以透過繼承來重用，但是實現不必重用。已存在的介面對於修改是封閉的，並且新的實現必須，至少，實現那個介面。1996年發表的文章《開閉原則》是使用這種方法的啟發式著作。在2001年，Craig Larman把開閉原則關聯到了的名為「受護的變數」的模式以及David Parnas關於的討論。
metadata: erhwenkuo/wikipedia-zhtw
metadata: 開閉原則
metadata: https://zh.wikipedia.org/wiki?curid=3186174