物件導向設計6大原則
1) Open-Close Principle(OCP),開-閉原則,講的是設計要對擴充套件有好的支援,而對修改要嚴格限制。這是最重要也是最為抽象的原則,基本上我們所說的Reusable Software既是基於此原則而開發的。其他的原則也是對它的實現提供了路徑。
2) Liskov Substituition Principle(LSP),里氏代換原則,很嚴格的原則,規則是“子類必須能夠替換基類(父類),否則不應當設計為其子類。”也就是說,子類只能去擴充套件基類,而不是隱藏或覆蓋基類。
3) Dependence Inversion Principle(DIP),依賴倒換原則,“設計要依賴於抽象而不是具體化”。換句話說就是設計的時候我們要用抽象來思考,而不是一上來就開始劃分我需要哪些哪些類,因為這些是具體。這樣做有什麼好處呢?人的思維本身實際上就是很抽象的,我們分析問題的時候不是一下子就考慮到細節,而是很抽象的將整個問題都構思出來,所以面向抽象設計是符合人的思維的。另外這個原則會很好的支援OCP,面向抽象的設計使我們能夠不必太多依賴於實現,這樣擴充套件就成為了可能,這個原則也是另一篇文章《Design by Contract》的基石。
4) Interface Segregation Principle(ISP),介面隔離原則,“將大的介面打散成多個小介面”,這樣做的好處很明顯,我不知道有沒有必要再繼續描述了,為了節省篇幅,實際上我對這些原則只是做了一個小總結,如果有需要更深入瞭解的話推薦看《Java與模式》,MS MVP的一:本鉅作!^_^
5) 單一職責:一個類的功能儘量單一,降低耦合
6) Law of Demeter or Least Knowlegde Principle(LoD or LKP),迪米特法則或最少知識原則,這個原則首次在Demeter系統中得到正式運用,所以定義為迪米特法則。它講的是“一個物件應當儘可能少的去了解其他物件”。也就是又一個關於如何鬆耦合(Loosely-Coupled)的法則。
好了,以上是6大原則(或法則)的介紹,對這些原則的深入研究正是如何得到設計模式的道路。在進行了深入瞭解後我們就可以開始看看設計模式了,設計模式正是對這些法則的應用,著名的設計模式有四人幫(Gang of Four,GoF)的23個模式,除此之外還有很多其他的一些著名模式,大家可以慢慢研究。
更過技術問題解決防範請搜尋千鋒PHP,千鋒論壇
相關文章
- 物件導向設計的6大原則物件
- 物件導向程式設計(OOP)的七大原則物件程式設計OOP
- 物件導向的7大原則與23種設計模式物件設計模式
- 物件導向設計原則物件
- 【設計模式筆記】(零)- 物件導向的六大原則設計模式筆記物件
- 物件導向的六大原則物件
- 物件導向設計的六大原則(SOLID原則)-——里氏替換原則物件Solid
- 設計模式:物件導向設計的六大原則 (絕對詳細)設計模式物件
- 設計模式“6”大原則!設計模式
- U6物件導向設計物件
- The Principles of OOD 物件導向設計原則物件
- 2.物件導向設計原則物件
- 物件導向設計原則和模式物件模式
- 物件導向的基本設計原則物件
- 前端設計模式(0)物件導向&&設計原則前端設計模式物件
- 物件導向設計原則&設計模式分類物件設計模式
- 開閉原則——物件導向程式設計原則物件程式設計
- Java中物件導向的設計原則Java物件
- 物件導向的編碼設計原則物件
- 物件導向程式設計的基本原則物件程式設計
- 面象物件設計6大原則之三:里氏替換原則物件
- 面象物件設計6大原則之四:介面隔離原則物件
- 面象物件設計6大原則之五:依賴倒置原則物件
- 翻譯 | The Principles of OOD 物件導向設計原則物件
- 物件導向之六大設計原則物件
- 面象物件設計6大原則之一:單一職責原則物件
- 面象物件設計6大原則之二:開放封閉原則物件
- SOLID:物件導向設計的前五項原則Solid物件
- 61條物件導向設計的經驗原則物件
- 設計模式之——物件導向5大基本原則設計模式物件
- 七種常見的物件導向設計原則物件
- SOLID:物件導向設計的五個基本原則Solid物件
- 沒錯,這就是物件導向程式設計(設計模式)需要遵循的 6 個基本原則物件程式設計設計模式
- 物件導向程式設計物件程式設計
- 走向靈活軟體之路-物件導向的六大原則物件
- JS物件導向設計-建立物件JS物件
- 實驗1:UML與物件導向程式設計原則物件程式設計
- Python基礎入門(6)- 物件導向程式設計Python物件程式設計
- 深入理解物件導向,物件導向3個特性7個原則6種關係物件