日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

设计模式-设计原则(Design Principle)

發(fā)布時間:2025/6/17 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式-设计原则(Design Principle) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文由@呆代待殆原創(chuàng),轉(zhuǎn)載請注明出處。

?

寫在前面:所謂設(shè)計原則并不是一定要遵守的法則,只是一種建議,因?yàn)楸3诌@些原則本身會有一定代價,若是這些代價超過了帶來的好處就得不償失了,所以一切還是以簡單為準(zhǔn)。

?

原則一:分離變與不變的部分。

定義:找出代碼中會發(fā)生變化的部分,并將其和保持不變的部分分離。

作用:提升可維護(hù)性。將會變化的部分分離后,在以后的修改過程中就不會影響到其他不變的部分。

?

原則二:面向接口編程。

定義:面向接口編程,而不是面向某個實(shí)現(xiàn)。

作用:降低耦合。這里的接口有多個含義,并不僅僅只java中的interface,更準(zhǔn)確的表達(dá)應(yīng)該是面向超類編程。這樣的話只要接口不發(fā)生改變,依賴接口的部分就不用發(fā)生改變,我們都知道,接口發(fā)生改變的可能性比接口的某個實(shí)現(xiàn)發(fā)生改變的可能性小很多。

?

原則三:開閉原則(The Open-Closed Principle)。

定義:類需要支持?jǐn)U展而拒絕修改。

作用:增加可修改性和可維護(hù)性。

?

原則四:Dependency Inversion Principle(依賴倒置原則,之后簡稱DIP)。

定義:不要依賴實(shí)例(concrete classes)編程,依賴抽象(abstractions,指依賴抽象類和接口)。

關(guān)于倒置(inversion)的理解:通常我們的高層組件都會依賴于低層組件(指某個低層具體實(shí)例類),而DIP是不允許這樣的,在DIP的指導(dǎo)下,我們會創(chuàng)建一個抽象類,讓它處于高層組件與低層組件之間,打破這種依賴,這時不僅高層組件會依賴于這個抽象類,低層組件會依賴于這個所處位置比它高層的抽象類,所以會出現(xiàn)“倒置”這個說法。

此原則的幾個指導(dǎo)方針(并不是一定要準(zhǔn)守,只是在開發(fā)的時候當(dāng)成一個參考而已)

1,不要有指向一個具體實(shí)例(concrete class)的引用。

2,不要有從具體實(shí)例(concrete class)派生出的類。

3,不要覆蓋父類中已經(jīng)實(shí)現(xiàn)的方法。

4,低層組件盡量都要有共同的接口或者抽象類。

與原則二的區(qū)別:比原則二更加嚴(yán)格,它增加了高層組件不能直接依賴低層組件這一條。

作用:降低耦合。只要定義好了高層組件和低層組件間的接口,他們的開發(fā)可以同步進(jìn)行,在多人開發(fā)中的意義也很大。

?

原則五:最少至少原則(The Principle of Least Knowledge)[又稱迪米特法則(Law of Demeter)]

定義:一個對象應(yīng)該對其他對象保持最少的了解。

此原則的幾個指導(dǎo)方針

1,只調(diào)用自己的成員方法。

2,只調(diào)用當(dāng)做參數(shù)傳遞進(jìn)來的對象的成員方法。

3,只調(diào)用自己的方法實(shí)例化的對象的成員方法。

4,只調(diào)用組合對象(成員變量的一部分)的成員方法。

作用:降低復(fù)雜度,提高可維護(hù)性。

?

原則六:好萊塢原則(The Hollywood Principle)

定義:別調(diào)用我們,我們會調(diào)用你。

作用:防止依賴腐敗(dependency rot),當(dāng)高層組件和低層組件組件相互依賴的時候,通常組件之間的關(guān)系會過于復(fù)雜,這時,就可以運(yùn)用這個原則,拒絕低層組件調(diào)用高層組件,而是等待高層組件來調(diào)用低層組件,這樣可以降低編程的復(fù)雜程度。

?

原則七: 單一責(zé)任原則(Single Responsibility)

定義:一個類只有一個引起變化的原因

作用:高內(nèi)聚,提高可維護(hù)性。每個類只有一個職責(zé),只有這個職責(zé)發(fā)生改變的時候這個類才應(yīng)該被修改。

?

?

參考資料:《Head First 設(shè)計模式》

?

轉(zhuǎn)載于:https://www.cnblogs.com/coffeeSS/p/5413512.html

總結(jié)

以上是生活随笔為你收集整理的设计模式-设计原则(Design Principle)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。