開閉原則的定義是軟體中的物件(類,模組,函式等)應該對於擴充套件是開放的,但是對於修改是關閉的。
子類可以去擴充套件父類的功能,但是不能改變父類原有的功能。
高層模組不應該依賴底層模組,兩者都應該依賴其抽象 抽象不應該依賴細節 細節應該依賴抽象
客戶端不應該依賴他不需要的介面
乙個物件應該對其他物件保持最小的了解。(兩個類不必直接通訊,呼叫通過第三者呼叫)
總的思想是類之間的松耦合。
耦合的方式很多,依賴、關聯、組合、聚合等。
依賴:a類是b類中的(某中方法的)區域性變數;(司機和汽車)
關聯:使用者和訂單。
聚合關係(aggregation):表示的是整體和部分的關係,整體與部分 可以分開.(汽車和乘客)
組合關係(composition):也是整體與部分的關係,但是整體與部分不可以分開.(頭和耳朵)
物件導向 六大原則
舉乙個簡單的例子,登入功能。一般登入需要包括幾個基本的功能 1.登入頁面 2.接受使用者輸入 3.提交使用者輸入資料到服務端驗證 4.返回驗證結果並提示給使用者 按照單一原則我們就可以將登入功能拆分成兩個類,登入頁類和網路請求類。其實因為單一原則並不是很容易劃分,很多時候需要根據個人經驗和實際情況 ...
物件導向六大原則
先來看物件導向的六大原則吧 一 單一職責原則 二 開閉原則 三 黎克特制替換原則 四 依賴倒置原則 五 介面隔離原則 六 迪公尺特原則class imageloader 就像上面的 一樣我們把所有功能寫到乙個類中,隨著我們專案越來越大功能也越來越大,會導致這個類很龐大也很脆弱。這時候可以拆分出來每個...
物件導向六大原則
引用一段經典的話,武學的最高境界是無招勝有招 在程式設計領域,設計模式就可以認為是招數,而真正的內功心法是設計原則 下面講述一下程式設計中應該遵循的基本原則 乙個類只負責一種職責,只有這種職責的改變會導致這個類的變更。繞口一點的正統說法 不要存在多於乙個原因導致類變更 假如 類t 負責有兩種職責 p...