設計模式七大原則

2021-10-16 13:58:17 字數 1373 閱讀 9835

開閉原則的定義是對擴充套件開放,對修改關閉。當應用程式的需求需要改變或擴充套件時,我們應該在不修改其源**的 情況下,也能完成相應的目的。

開閉原則的優點是:使得應用程式更易於維護和擴充套件。

單一職責原則規定乙個類應該有且僅有乙個能夠引起它變化的原因,否則此類應該被拆分。單一職責的意思是不應該讓乙個類 承擔太多職責,否則如果乙個職責修改,其他職責可能也會跟著修改,且如果乙個客戶端只需要這個類的乙個職責時, 那麼客戶端不得不承受引入其他職責的代價。

單一職責原則的優點是:提高了**的可讀性,不至於乙個類裡啥元素都有,且系統之間更加的高內聚與低耦合。

介面分離原則描述的是當乙個介面的功能和職責太多時,我們需要將這個大介面分割成若干小介面,每乙個小介面只 服務於其對應的客戶端。但是我們也需要控制每個小介面的粒度,如果粒度太小,那麼會增加許多冗餘的介面,不利於維護。

介面分離原則的優點是:避免乙個介面裡含有不同的職責,每個介面的職責分明,與單一職責相似,都符合高內聚與低耦合的思想。

依賴倒轉原則是實現開閉原則的基礎,它的意思是當我們在編寫物件導向的應用程式時,我們需要針對介面或抽象類程式設計, 而不具體的依賴某個實現類,這樣可以降低系統之間的耦合性。

依賴倒轉原則的優點是:通過抽象建立系統之間的關係,使得系統具有高度的可維護性和可擴充套件性。

黎克特制替換原則的定義是繼承必須確保超類所擁有的性質在子類中仍然成立,即在基類出現的地方,其子類一定可以出現, 子類可以擴充套件基類的功能,但是盡量不要重寫基類的功能。

黎克特制替換原則的優點是:可以規範我們在正確的地方使用繼承,而不至於造成繼承的使用氾濫。

迪公尺特法則又稱 「最少知道原則」 , 它的定義是 「只與你的朋友交談,不與陌生人說話」, 這句話的含義是如果兩個軟體實體或 服務之間無需直接通訊,那麼就不應當發生直接的相互呼叫,可以通過第三方實體或服務進行**通訊。 其目的是為了降低系統的耦合度。

迪公尺特法則的優點是:降低系統的耦合性,減少系統之間的關聯,也符合高內聚與低耦合的思想。

合成復用原則規定 當我們需要復用一些系統的**的時候,應該優先考慮組合或聚合的方式實現,其次再考慮使用繼承的方式實現。 如果乙個基類的功能太多,而你只想復用一部分功能,使用繼承就意味著不需要的功能也會被新增到當前系統中來,這就造成了不必要的麻煩。 所以可以優先考慮使用組合的方式完成**的復用。

合成復用原則的優點是:使系統易於維護,提高**的可讀性。

設計模式七大原則

open closed principle ocp 最基礎的原則,對擴充套件開放,對修改關閉強調的是用抽象構建框架,用實現擴充套件細節,可以提高軟體系統的可復用性和可維護性 dependence inversion principle,dip 程式要依賴於抽象介面,不要依賴於具體實現。即面向介面程式...

設計模式 七大原則

懂了設計模式,你就懂了物件導向分析和設計 ooa d 的精要.編寫軟體的過程,面臨 耦合性 內聚性 維護性 可擴充套件性 重用性 靈活性 等各方面的挑戰。設計模式就是為了解決這些問題 程式設計時遵循的原則,各種設計模式的基礎 注意事項和細節 那麼問題來了,如何正確使用繼承?答案 黎克特制替換原則 基...

設計模式七大原則

編寫軟體過程中,程式設計師面臨著來自耦合性,內聚性以及可維護性,可擴充套件性,重用性,靈活性等多方面的挑戰,設計模式是為了讓程式具有更好以下特性 1 重用性 即 相同功能的 不用多次編寫 3 可擴充套件性 即 當需要增加新的功能時,非常的方便,稱為可維護 4 可靠性 即 當我們增加新的功能後,對原來...