- Global Diagram
- 依賴倒置原則(依賴抽象接口,而不是具體對象)
- 單一職責原則(類、接口、方法)
- 開閉原則 (擴展開放,修改關(guān)閉)
- 里氏替換原則(基類和子類之間的關(guān)系)
- 接口隔離原則(接口按照功能細分)
- 最少知道原則 (類與類之間的親疏關(guān)系)
- 合成復(fù)用原則(Composite Reuse Principle)
其實沒有什么設(shè)計模式,所謂的設(shè)計模式,只是在OOP( 面向?qū)ο蟪绦蛟O(shè)計)領(lǐng)域內(nèi),一些前人總結(jié)出來的最佳工作實踐而已,可以說是一種拆箱即用的工作模版。
學習設(shè)計模式的壞處:
- 經(jīng)典的23種設(shè)計模式,涵蓋的場景很多,學習成本高;
- 很多模式相互交叉,相互可以轉(zhuǎn)換,讓人難以分辨。學習設(shè)計模式是為了解決業(yè)務(wù)問題,但是本末倒置,卻鉆牛角尖去研究設(shè)計模式里面的奧妙了;
不要為了設(shè)計而設(shè)計,這種行為就行一個小孩在大人衣柜前胡亂的穿搭著大人的西裝。
設(shè)計模式,應(yīng)該是在工作有需求之后才來學習(不要擔心來不及),累積了很多場景在心中之后,一通百通。而不是還未熟悉編程,就本末倒置。
程序設(shè)計領(lǐng)域的設(shè)計模式的六大設(shè)計原則
+ 合成復(fù)用原則
(Composite Reuse Principle) ,都是一些很泛的思想(它們既可以指這個,也可以代指那個),無法生搬硬套,無法做到很具體的指導(dǎo),我的建議是,有空多看幾遍、多思考看看怎么能運用在實際項目中,在未來時保佑自己在設(shè)計程序時能聯(lián)想到即可。
矛盾性的思考:
有時在面對一個復(fù)雜需求時,可能會面臨滿足了這個原則就會矛盾另一個原則的情況,這種就得做必要的取舍。
關(guān)于記憶的一些個人見解:
設(shè)計模式、設(shè)計原則...,我覺得都是不要去記憶它,而是通過你工作中的項目代碼、網(wǎng)上好的項目代碼,去做歸納總結(jié)、去發(fā)現(xiàn)一些特征。自己不斷的總結(jié)提煉,我覺得這樣才會形成自己的軟件設(shè)計原則,硬背下來的,還是不靈活的。
Global Diagram
文章來源:http://www.zghlxwxcb.cn/news/detail-684160.html
依賴倒置原則(依賴抽象接口,而不是具體對象)
- 它強調(diào)了高層次模塊不應(yīng)該依賴于低層次模塊,而是應(yīng)該依賴于抽象(接口)。這個原則有助于降低類之間的耦合度,提高系統(tǒng)的可維護性和可復(fù)用性。
- 依賴倒置原則要求我們將具體的實現(xiàn)類通過接口或者抽象類進行抽象,以便高層次模塊不需要知道低層次模塊的具體實現(xiàn)細節(jié)。這樣,當?shù)蛯哟文K發(fā)生改變時,高層次模塊不需要進行任何修改,只需要重新配置依賴關(guān)系即可。
單一職責原則(類、接口、方法)
- 一個類(接口、方法)只承擔一個職責;
- 變更引起的風險降低。變更是必然的,如果單一職責原則遵守得好,當修改一個功能時,可以顯著降低對其他功能的影響;
開閉原則 (擴展開放,修改關(guān)閉)
- 對已經(jīng)完成的程序來說,最佳的維護狀態(tài)是,只對擴展開放,對修改關(guān)閉;
里氏替換原則(基類和子類之間的關(guān)系)
- 這個原則的核心思想是,如果一個類繼承自另一個類,那么子類可以替換父類進行任何操作,前提是不能違反程序的原始行為。這要求子類的方法實現(xiàn)不能違背父類的規(guī)范和約束;
- 子類可以擴展父類的功能,但不能改變父類原有的功能;
- 只要父類出現(xiàn)的地方,子類就也可以出現(xiàn),而且替換為子類后不會出現(xiàn)任何錯誤;
接口隔離原則(接口按照功能細分)
- 要求程序員盡量將臃腫龐大的接口拆分成更小的和更具體的接口,讓接口中只包含客戶感興趣的方法;
- 核心就是:不要讓用戶、接口實現(xiàn)者去實現(xiàn)不相關(guān)的功能;
- 這個和單一職責原則有點重復(fù);
最少知道原則 (類與類之間的親疏關(guān)系)
- 最小化權(quán)限;
合成復(fù)用原則(Composite Reuse Principle)
- 盡量使用對象組合/聚合,而不是繼承關(guān)系達到軟件復(fù)用的目的;
- 合成或聚合可以將已有對象納入到新對象中,使之成為新對象的一部分,因此新對象可以調(diào)用已有對象的功能;
有些編程語言就沒有繼承概念,只有組合、復(fù)用概念,各自的好壞有待辯證吧。文章來源地址http://www.zghlxwxcb.cn/news/detail-684160.html
到了這里,關(guān)于六大程序設(shè)計原則 + 合成復(fù)用原則的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!