天天看點

面向對象設計的六大原則簡介

1)單一職責原則,一個合理的類,應該僅有一個引起它變化的原因,即單一職責,就是設計的這個類功能應該隻有一個;

  優點:消除耦合,減小因需求變化引起代碼僵化。

2) 開-閉原則,講的是設計要對擴充有好的支援,而對修改要嚴格限制。

  優點:降低了程式各部分之間的耦合性,其适應性、靈活性、穩定性都比較好。當已有軟體系統需要增加新的功能時,不需要對作為系統基礎的抽象層進行修改,隻需要在原有基礎上附加新的子產品就能實作所需要添加的功能。增加的新子產品對原有的子產品完全沒有影響或影響很小,這樣就無須為原有子產品進行重新測試。

3) 裡氏代換原則,很嚴格的原則,規則是“子類必須能夠替換基類,否則不應當設計為其子類。”也就是說,子類隻能去擴充基類,而不是隐藏或覆寫基類,

  優點:可以很容易的實作同一父類下各個子類的互換,而用戶端可以毫不察覺。

4) 依賴倒換原則,“設計要依賴于抽象而不是具體化”。換句話說就是設計的時候我們要用抽象來思考,而不是一上來就開始劃分我需要哪些哪些類,因為這些是具體。

  優點:人的思維本身實際上就是很抽象的,我們分析問題的時候不是一下子就考慮到細節,而是很抽象的将整個問題都構思出來,是以面向抽象設計是符合人的思維的。另外這個原則會很好的支援(開閉原則)OCP,面向抽象的設計使我們能夠不必太多依賴于實作,這樣擴充就成為了可能。

5) 接口隔離原則,“将大的接口打散成多個小接口”,讓系統解耦,進而容易重構,更改和重新部署。

  優點:會使一個軟體系統功能擴充時,修改的壓力不會傳到别的對象那裡。

6) 迪米特法則或最少知識原則,這個原則首次在Demeter系統中得到正式運用,是以定義為迪米特法則。它講的是“一個對象應當盡可能少的去了解其他對象”。

  優點:消除耦合。