設計模式之設計原則(Java)

設計原則包括:編程

一、單一職責原則、設計模式

二、里氏替換原則、ide

三、依賴倒置原則、工具

四、接口隔離原則、測試

五、迪米特法則、spa

六、開閉原則。設計


一、單一職責原則(Single Responsibility Principle,SRP):代理

There should never be more than one reason for a class to change.對象

對於一個類來講,應只專一於一件事和僅有一個引發變化的緣由。繼承

我本身的理解是:一個類須要專注完成它所能作的一件事,並非不少事情都須要這一個類來提供完成,若是須要作其餘事,就再建立另外一個類。

優勢:

a,下降類的負責性;

b,提升類的可讀性;

c,提升代碼的可維護性和複用性;

d,下降因變動引發的風險。


二、氏替換原則(Liskov Substitution Principle,LSP):

下面先來講說繼承的優勢和缺點吧:

優勢:

代碼共享,減小建立類的工做量,每一個子類都擁有父類的全部屬性和方法;

提升代碼的可重用性;

提升代碼的可擴張性;

提升產品或項目的開放性。

缺點:

繼承是***性的,擁有父類的屬性和方法;

下降代碼的靈活性,必須擁有父類的屬性和方法;

加強耦合性,父類屬性或方法改變,須要考慮子類。

綜上所述,繼承的「利」大於「弊」,如今用「里氏替換原則」來下降「弊」帶來的麻煩。


里氏替換原則的定義有兩種:

①:假如對S類型的對象o1,都有類型T的對象o2,使得以S定義的程序P在全部的對象o1都替換成

o2,則程序P的行爲沒有發生變化,那麼T是S的子類型。

②:全部引用基類的地方必須可以透明的使用其子類對象。


體現里氏替換原則的設計模式有:策略模式、組合模式、代理模式

三、依賴倒置原則(Dependency Inversion Principle,DIP)

面向接口編程——OOD。

高層模塊不該該依賴底層模塊,二者都依賴其抽象;抽象不依賴細節;細節應該依賴於抽象。

依賴倒置原則是JavaBean、EJB、COM等組件設計模型背後的基本原則。

本質:經過抽象(接口或抽象類)使各個類或模塊的實現彼此獨立,互不影響,實現模塊間的鬆耦合。

使用此原則的規則:

①每一個類,接口或抽象類;②變量的表現類型,接口或抽象類;③類都不從具體類派生;④不重寫

基類方法;⑤結合里氏替換原則。

依賴倒置原則在大項目的體現上,優勢很明顯。


四、接口隔離原則(Interface Segregation Principle,ISP)

兩種定義

①客戶端不該該依賴他不須要的接口;

②類間的依賴關係應該創建在最小的接口上。

含義:a,一個類對另外一個類的依賴性應當是創建在最小的接口上;

b,一個接口表明一個角色,不該當就愛那個不一樣角色都交給一個接口;

c,不該該強迫客戶依賴他們不用的方法。


五、迪米特法則(Law of Demeter,LOD)

也叫作:最少知識原則(Least Knowledge Principle,LKP)

一個類須要調用另外一個類的某一方法,能夠經過第三者轉發這個調用。

減小類之間的關係,下降類之間的耦合,提升類複用率。

設計模式使用迪米特法則的有:外觀模式、中介者模式。


六、開閉原則(Open-Closed Principle,OCP)

在面向對象的編程中,開閉原則是最基礎的原則,起到總的指導做用,其餘原則都是開閉原則的手

段和工具。

①:提升複用性;

②:提升可維護性;

③:提升靈活性;

④:易於測試;

相關文章
相關標籤/搜索