1.定義 一個軟件實體(如類、模塊、函數)應當對擴展開放,對修改關閉。 2.定義解讀 在項目開發的時候,都不能指望需求是確定不變化的,大部分情況下,需求是變化的。那么如何應對需求變化的情況?這就是開放-關閉原則要談的。 開放-封閉原則的思想就是設計的時候,盡量讓設計的類做好后 ...
在面向對象的設計中有很多流行的思想,比如說 所有的成員變量都應該設置為私有 Private , 要避免使用全局變量 Global Variables , 使用運行時類型識別 RTTI:Run Time Type Identification,例如 dynamic cast 是危險的 等等。那么,這些思想的源泉是什么 為什么它們要這樣定義 這些思想總是正確的嗎 本篇文章將介紹這些思想的基礎:開放封閉 ...
2014-06-17 08:18 5 11860 推薦指數:
1.定義 一個軟件實體(如類、模塊、函數)應當對擴展開放,對修改關閉。 2.定義解讀 在項目開發的時候,都不能指望需求是確定不變化的,大部分情況下,需求是變化的。那么如何應對需求變化的情況?這就是開放-關閉原則要談的。 開放-封閉原則的思想就是設計的時候,盡量讓設計的類做好后 ...
怎樣的升級才能面對需求的改變卻可以保持相對穩定,從而使得系統可以在第一個版本以后不斷推出新的版本呢?開放-封閉原則(The Open-Closed Principle, OCP)為我們提供了指引。軟件實體(類、模塊、函數等)應該是可以擴展的,但是不可修改的。如果程序中一處改動就會產生連鎖反應,導致 ...
寫在前面 最近, 接手了一個新業務,系統的架構可圈可點。但有些地方讓人望而生畏,有些代碼臃腫難以維護,讓人不敢恭維。於是,結合了Java的開放封閉原則,對其中一部分代碼進行了重構優化。 先來看下以前系統的老代碼 shareChannel這個方法承載了分享渠道的主要鏈路邏輯。分享 ...
1. 開閉原則概述 開閉原則(OCP,The Open-Closed Principle)兩個主要特征: (1)對擴展開放(open for extension):模塊的行為的可以擴展的,當應用的需求改變時,可以對模塊進行擴展。 (2)對修改關閉(closed ...
前言 面向對象有人分為五大原則,分別為單一職責原則、開放封閉原則、依賴倒置原則、接口隔離原則、里氏替換原則。 也有人分為六大原則,分別為單一職責原則、開放封閉原則、依賴倒置原則、接口隔離原則、里氏替換原則、迪米特法則。 現在我們來介紹開放封閉原則,也叫開閉原則 開閉原則 ...
開放封閉原則定義 開放與封閉原則有兩種不同的定義,分別是20世紀80年代最原始的定義和后期一個更現代的定義,后者對前者進行更加詳盡的闡述。 Meyer的定義 軟件實體應該允許擴展,但禁止修改 ——《面向對象軟件構造》 Martin的定義 ”對於擴展是開放 ...
開放封閉原則(Open-Closed Principle OCP) Software entities(classes,modules,functions etc) should open for extension ,but close for modification. 什么意思 ...
最少知識原則(Least Knowledge Principle),或者稱迪米特法則(Law of Demeter),是一種面向對象程序設計的指導原則,它描述了一種保持代碼松耦合的策略。其可簡單的歸納為: Each unit should have only limited ...