1. 程式人生 > 其它 >一、7大設計模式原則 和 23種設計模式

一、7大設計模式原則 和 23種設計模式

什麼是設計模式?

在軟體工程中,設計模式(design pattern)是對軟體設計中普遍存在的各種問題,所提出的解決方案

這個術語是由埃裡希·伽瑪(Erich Gamma)等人在1990年代從建築設計領域引入到電腦科學的;

 

 

 

 就好比上圖中的 大廈vs簡易房,前者需要設計、而後者因為規模太小、可以跳過設計直接建造。軟體開發也是一樣的道理,大型專案需要一定的軟體設計模式基礎;

 

設計模式有什麼重要性?

拿實際工作經歷來說,當一個專案開發完後,如果客戶提出增新功能,怎麼辦?

如果專案開發完後,原來程式設計師離職,你接手維護該專案怎麼辦?(程式碼需要強維護性,即可讀性、規範性,接手專案才能快速)

目前程式設計師門檻越來越高,一線IT公司(大廠),都會問你在實際專案中使用過什麼設計模式,怎樣使用的,解決了什麼問題

設計模式一般出現在專案中哪個階段?答:面向物件(OO)=>功能模組(設計模式+資料結構與演算法)=>框架(這裡也使用到設計模式)=> 架構(伺服器叢集);

如果想成為合格軟體工程師,那就花時間來研究下設計模式是非常必要的;

 

設計模式原則

所有的(23種)設計模式都需要遵守的原則,稱為:設計模式原則;

設計模式原則,其實就是程式設計師在程式設計時,應當遵守的原則,也是各種設計模式的基礎(即:設計模式之所以這樣設計,其實所依據的就是遵守這7大原則)

設計模式常用的七大原則有:

1. 單一職責原則

2. 介面隔離原則

3. 依賴倒轉(倒置)原則

4. 里氏替換原則

5. 開閉原則

6. 迪米特法則

7. 合成複用原則

注意:這7大原則和及其概念,必須要背,且必須要理解裡面的含義;

 

設計模式的目

設計模式,是為了讓程式,具有更好的:

1)程式碼重用性(即:相同功能的程式碼,不用多次編寫)

2)可讀性(即:程式設計規範性,便於其他程式設計師的閱讀和理解)

3)可擴充套件性(即:當需要增加新的功能時,非常的方便,稱為可維擴)

4)可靠性(即:當我們增加新的功能後,對原來的功能沒有影響)

5)使程式呈現 高內聚,低耦合 的特性(模組內強依賴,模組間依賴很低)

 

金句:

設計模式包含了面向物件的精髓,“懂了設計模式,你就懂了面向物件分析和設計(OOA/D)的精要”

Scott Mayers 在其鉅著《Effective C++》 就曾經說過: C++老手和 C++新手的區別就是前者手背上有很多傷疤

 

下一篇,我們開始講解第一種設計模式原則:單一職責原則;