設計模式之6大原則
一、設計模式6大原則
名稱 | 解釋 |
---|---|
0、單一職責原則(SRP) | 就一個類而言,應該僅有一個引起它變化的原因。 |
一、"開放-封閉"原則(OCP) | 在軟體設計模式中,這種不能修改,但可以擴充的思想也是最重要的一種設計原則。即軟體實體(類、模闆、函數等等)應該可以擴充,但是不可修改。【通俗】:設計的時候,時刻考慮,盡量讓這個類是足夠好,寫好了就不要去修改了,如果新需求來,我們增加一些類就完事了,原來的代碼能不動則不動。 |
二、裡氏代換原則(LSP) | 1.一個軟體實體如果使用的是一個父類的話,那麼一定适用于該子類,而且他覺察不出父類對象和子類對象的差別。也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。【一句話】:子類型必須能夠替換掉他們的父類型。 |
三、依賴倒置原則(DIP) | 1.高層子產品不應該依賴于底層子產品。兩個都應該依賴抽象。2.抽象不應該依賴于細節,細節依賴于抽象【白話】:針對接口程式設計,不要針對實作程式設計。 |
四、接口隔離原則(ISP) | 1.使用多個專門的接口比使用單一的總接口總要好。換而言之,從一個客戶類的角度來講:一個類對另外一個類的依賴性應當是建立在最小接口上的。2.過于臃腫的接口是對接口的污染。不應該強迫客戶依賴于它們不用的方法。 |
五、合成/聚合複用原則(CARP) | 盡量使用合成/聚合,盡量不要使用類繼承。【聚合】:表示一種弱的擁有關系,展現的是A對象可以包含B對象,但B對象不是A對象的一部分。【合成】:一種強的擁有關系,提現了嚴格的部分和整體的關系,部分和整體的生存周期一緻。 |
六、迪米特法則(LoD)最少知識原則 | 強調類之間的松耦合。即:如果兩個類不必彼此直接通信,那麼着兩個類就不應當發送直接的互相作用。如果其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。 |
___大部分内容摘自《大話設計模式》
1.樓主?題目不是6個設計模式嗎?怎麼列舉了7個?
答:不同的書上列舉的不太一樣,單一模式原則和接口隔離原則多數都提了一個。本文都列舉上,待深入探究後給出詳細分析。
2.接口隔離原則與單一職責原則不是相同的嗎?
答:錯,接口隔離原則與單一職責的審視角度是不相同的。
單一職責要求的是類和接口職責單一,注重的是職責,這是業務邏輯上的劃分;
而接口隔離原則要求接口的方法盡量少。例如一個接口的職責可能包含10個方法,這10個方法都放在一個接口中,并且提供給多個子產品通路,各個子產品按照規定的權限來通路,在系統外通過文檔限制“不使用的方法不要通路”,按照單一職責原則是允許的,按照接口隔離原則是不允許的,因為它要求“盡量使用多個專門的接口”,專門的接口指什麼?就是指提供給每個子產品都應該是單一接口,提供給幾個子產品就應該有幾個接口,而不是建立一個龐大的臃腫的接口,容納所有的用戶端通路。
作者:銘毅天下
來源:CSDN
原文:
https://blog.csdn.net/laoyang360/article/details/8066565版權聲明:本文為部落客原創文章,轉載請附上博文連結!