java對象的六大原則


對象的六大原則:

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

2.開閉原則(Open Close Principle OCP)

3.里氏替換原則(Liskov Substitution Principle LSP)

4.依賴倒轉原則(Dependence Inversion Principle  DIP)

5. 接口隔離原則(Interface Segregation Principle  ISP)

6.迪米特原則 (Least Knowledge Principle  LKP)

 

單一職責原則:

就一個類而言,應該僅有一個引起它變化的原因,簡而言之:一個類應該是一組相關性很高的函數、數據的封裝。

一個類盡量只有一個職責(相關),兩個完全不一樣的功能就不應該放在一個類中,通過不斷審視自己的代碼,根據具體的業務,功能對類進行相應的拆分。

 

開閉原則:

軟件中的對象(類、模塊、函數等)應該對於擴展開放,對於修改是封閉的。

程序一旦開發完成,程序中的一個類的實現只因錯誤而被修改,新的或者改變的特性應該通過新建不同的類來實現,新建的類可以通過繼承的方式來重用原類的代碼。

eg:抽象為接口,對於擴展,新增類來實現。

 

里氏替換原則:

1.如果對每一個類型為S的對象O1,都有類型為T的對象O2,是的以T定義的所有程序P在所有的獨享O1都換成O2,程序P的行為沒有發生變化,那么類型S是類型T的子類型。

2.所有引用積累的地方必須能透明地使用其子類的對象。

面向對象語言的三大特點:數據抽象(封裝)、繼承、多態

里氏替換原則依賴於繼承、多態。通俗來說:只要父類能出現的地方子類就可以出現,而且替換為子類也不會產生任何錯誤或者異常,但反過來就未必能行,有子類出現的地方,父類未必就能適應。將父類使用的地方替換為子類,事項多態。這就是里氏替換原則。

 

依賴倒轉原則:

指代一種特定的解耦形式,使高層次的模塊不依賴於低層次的模塊的實現細節的目的。

1.高層模塊不應該依賴底層模塊,兩者都應該依賴其抽象。

2.抽象不應該依賴細節。

3.細節應該依賴抽象。

抽象:指接口或者抽象類

細節:實現類,實現接口或者繼承抽象類而產生的類就是細節,特點:可以直接被實例化

也就是說,模塊間的依賴通過抽象發生,實現類之間不發生直接的依賴關系,其依賴關系是通過接口或者抽象類來實現,依賴抽象而不依賴具體實現,這就是依賴倒轉原則。

 

接口隔離原則:

顧名思義,在設計類時,我們需要將各種接口隔離,使用最少的接口,類間的依賴關系應該建立在最小的接口上。他的目的就是:系統解開耦合,從而容易重構,更改和重新部署。

 

迪米特原則:

一個對象應該對其他對象有最少了解,這個原則的提出也是為了降低耦合度的,便於整個系統維護,升級等等。

類與類之間的關系越密切,耦合度越大,一個類發生改變時,對另一個類的影響也就越大, Only Talk To Your Immedate Friends  只於直接的朋友通信。

 

其實這六大原則,總的來說,目的都是一樣:降低耦合性,便於維護,擴展。

當然,我們在編程的時候不能老是想着這六大原則,從而限制了我們的思維。需要通過大量實踐讓我們來把這六大原則融會貫通。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM