1. 程式人生 > >Android設計模式學習筆記|一|面向物件的六大原則

Android設計模式學習筆記|一|面向物件的六大原則

單一職責原則、開閉原則、里氏替換原則、依賴倒置原則、介面隔離原則、迪米特原則。

一、單一職責原則(Single Responsibility Principle SRP)

定義:就一個類而言,應該就有一個引起它變化的原因。簡單來說,一個類中應該是一組相關性很高的函式、資料的資料的封裝。

二、開閉原則(Open Close Principle  OCP)

定義:軟體中的物件(類、模組、函式等)對於擴充套件是開發的,但對於修改是關閉的。

三、里氏替換原則(Likov Substitutions Principle LSP)

定義:如果對每個型別為S的物件O1,都有型別為T的O2物件,使得以T定義的所有程式P在所有的物件O1都替換成O2時,程式P的行為沒有發生任何的改變,那麼型別S是型別T的子型別。所有使用基類的地方必須能透明的使用其子類。

優點:

(1)程式碼重用,減少建立類的成本,每個子類都擁有父類的方法和屬性;

(2)子類都與父類相同但又有所區別;

(3)提高程式碼的可擴充套件性。

繼承的缺點:

(1)繼承是入侵性的,只要繼承就必須擁有父類的方法和屬性;

(2)程式碼冗餘,靈活性降低,子類和父類程式碼相同或區別不大。

四、依賴倒置原則(Dependence Inversion Principle DIP)

定義:一種特定的解耦形式,使得高層次的模組不依賴於低層的模組的實現細節的目的,依賴模組被顛倒了。

依賴倒置原則:

(1)高層次的模組不應該依賴低層次的模組,兩者都應該依賴於抽象;

(2)抽象不應該依賴細節;

(3)細節應該依賴於抽象。

五、介面隔離原則(Interface Segregation Principle ISP)

定義:客戶端不應該依賴於它不需要的介面。另一種定義就是:類之間依賴關係應該建立在最小的介面上。介面隔離原則將龐大的系統、臃腫的介面(或者合併)為更小的、更具體的介面,讓客戶只去瞭解他們需要的方法。介面隔離原則的目的是讓系統解開耦合,從而容易重構、更新和重新部署。

六、迪米特原則(Law Of Demeter LOD 又稱最少知識原則 )

定義:一個物件應該對其他物件有最少的瞭解。通俗的講,一個類應該對自己需要和呼叫的類知道的越少越好,類的內部實現與點用著或者依賴者沒有關係,呼叫者或者依賴者只需要知道它需要的方法即可,其他的不管。如果類與類之間的關係越是密切,他們的耦合度就會越高,當一個類發生改變時,對另一個類的影響就會越大。