首頁>資訊>

1.開閉原則

⼀個軟體實體,如類,模組和函式應該對擴充套件開放,對修改關閉。所謂的開閉,是對擴充套件和修改兩個⾏為的⼀

個原則。需要強調的是利⽤抽象構建框架,⽤實現擴充套件細節。

開閉原則是⾯向物件 基礎的設計原則,它指導我們如何建立靈活穩定的系統。

2.依賴倒置原則

依賴倒置原則(Dependence Inversion Principle,DIP)是指設計程式碼結構時,⾼層模組不應該依賴底層模組,⼆者都應該依賴其抽象。抽象不應該依賴細節;細節應該依賴抽象。透過依賴倒置,可以減少類與類之間的耦合性,提⾼系統的穩定性,提⾼程式碼的 可讀性和可維護性,並能夠降低修改程式所造成的⻛險。

3.單⼀職責原則

假設我們有⼀個Class負責兩個職責,⼀旦發⽣需求變更,修改其中⼀個職責的邏輯程式碼,有可能會導致另⼀個職責的功能發⽣故障。這樣⼀來,這個Class存在兩個導致類變更的原因。

在設計的時候將類儘可能拆分,保證⼀個類只負責實現⼀個功能,降低程式碼的複雜度,在需求變更時,減⼩維護更改的影響範圍,,提⾼程式碼維護性。

4.接⼝隔離原則

接⼝隔離原則(Interface Segregation Principle, ISP)是指⽤多個專⻔的接⼝,⽽不使⽤單⼀的總接⼝,客戶端不應該依賴它不需要的接⼝。

接⼝隔離原則符合我們常說的⾼內聚低耦合的設計思想,從⽽使得類具有很好的可讀性,可擴充套件性和可維護性。我們在設計接⼝的時候,要多花時間去思考,要考慮業務模型,包括以後有可能發⽣變更的地⽅還要做⼀些預判。所以,對於抽象,對業務模型的理解 是非常重要的。

5.迪米特法則

迪米特原則(Law of Demeter LoD)是指⼀個物件應該對其他物件保持 少的瞭解,⼜叫 少知道原則(LeastKnowledge Principle,LKP),儘量降低類與類之間的耦合。 比如物流Service需要查詢訂單的狀態,不⽤在物流Service中增加接⼝,⽽是在訂單Service中增加⼀個查詢訂單狀態的接⼝。

6.⾥⽒替換原則

⼀個軟體實體如果適⽤⼀個⽗類的話,那⼀定是適⽤於其⼦類,所有引⽤⽗類的地⽅必須能透明地使⽤其⼦類的對 象,⼦類物件能夠替換⽗類物件,⽽程式邏輯不變。根據這個理解,我們總結⼀下:引申含義:⼦類可以擴充套件⽗類的功能,但不能改變⽗類原有的功能。

⾥⽒替換原則是對⼦⽗類關係的描述,即⼦類可以完全替代⽗類,但是⽗類不能替代⼦類。

7.合成復⽤原則

合成復⽤原則(Composite/Aggregate Reuse Principle,CARP)是指儘量使⽤物件組 合(has-a)/聚合(contanis-a),⽽不是繼承關係達到軟體復⽤的⽬的。可以使系統更加靈 活,降低類與類之間的耦合度,⼀個類的變化對其他類造成的影響相對較少。繼承我們叫做⽩箱復⽤,相當於把所有的實現細節暴露給⼦類。組合/聚合也稱之為⿊箱復⽤,對類以外的物件是⽆法獲取到實現細節的。

總結

設計原則包括: 開閉原則/單⼀原則/依賴倒置原則/接⼝隔離原則/迪米特原則/⾥⽒替換原則/合成復⽤原則

1.對修改關閉,對擴充套件開放;

2.單⼀職責,⼀個接⼝/類只做⼀件事,降低類和接⼝複雜度,提⾼程式碼維護性;

3.採⽤接⼝和抽象類來應對變化,透過抽象來定義框架,使⽤實現來擴充套件細節,應對需求變化;

4.⼦類可以替換⽗類,⽗類不能替換⼦類;

5.組合優於繼承,降低類與類之間的耦合;

6.接⼝定義應該儘量細化,儘量避免⼀個接⼝實現多個功能的情況

7
  • 3本作者大大最好的一本小說,劇情讓人拍手叫好,連看三遍也不膩
  • 譚德賽說 直接與疫苗製造商達成協議的國家 正在破壞COVAX