學習日記之迪米特法則、外觀模式和 Effective C++

迪米特法則(最少知識原則):如果兩個類不必彼此直接通信,那麼兩個類就不應該發生直接的相互作用。如果其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。


(1),在類的結構設計上,每一個類都應當儘量降低成員的訪問權限。

(2),迪米特法則的根本思想是強調了類的鬆耦合。

(3),類之間的耦合越弱,越有利於複用,一個處於弱耦合的類被修改,不會對有關係的類造成影響。


外觀模式(Facade):爲了系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。


(1),在設計初期階段,應該要有意思的將兩個不同的層分離,層與層之間建立外觀 Facade。

(2),在開發階段,子系統往往因爲不斷地重構演化而變得越來越複雜,增加外觀 Facade 可以提供一個簡單的接口,減少他們之間的依賴。

(3),在維護一個遺留的大型系統時,可能這個系統已經非常難以維持或擴展了,爲新系統添加一個 Facede 類,來提供設計粗糙或高度複雜的遺留代碼的比較清晰簡單的接口,讓新系統與 Facade 對象交互, Facade 與遺留代碼交互所以複雜的工作。


Effective C++ :

1:將成員變量聲明爲 private。


(1),切記將成員變量聲明爲 private。這可賦予客戶訪問數據的一致性、可細微劃分訪問控制、允諾約束條件獲得保證,並提供 class 作者以充分的實現彈性。

(2),protected 並不比 public 更具有封裝性


2:寧以 non-member、non-friend 替換 member 函數

(1),寧可拿 non-member non-friend 函數替換 member 函數。這樣做可以增加封裝性、包裹彈性(packaging flexibility) 和機能擴充性。


發佈了49 篇原創文章 · 獲贊 49 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章