oop原則
OOP設計原則:
OCP(Open-Closed Principle),開放封閉原則:軟體實體應該擴充套件開放、修改封閉。
實現:合理劃分構件,一種可變性不應當散落在程式碼的很多角落裡,而應當被封裝到一個物件裡;一種可變性不應當與另一個可變性混合在一起。
**DIP(Dependency Inversion Principle),依賴倒置原則:**擺脫程式導向程式設計思想中高層模組依賴於低層實現,抽象依賴於具體細節。OOP中要做到的是,高層模組不依賴於低層模組實現,二者都依賴於抽象;抽象不依賴於具體實現細節,細節依賴於抽象。
實現:應該通過抽象耦合的方式,使具體類最大可能的僅與其抽象類(介面)發生耦合;程式在需要引用一個物件時,應當儘可能的使用抽象型別作為變數的靜態型別,這就是針對介面程式設計的含義。
**LSP(Liskov Substitution Principle),Liskov替換原則:**繼承思想的基礎。“只有當衍生類可以替換掉基類,軟體單位的功能不會受到影響時,基類才真正被複用,而衍生類也才能夠在基類的基礎上增加新的行為。”
**ISP(Interface Insolation Principle),介面隔離原則:**介面功能單一,避免介面汙染。
實現:一個類對另外一個類的依賴性應當是建立在最小的介面上的。使用多個專門的介面比使用單一的總介面要好。
**SRP(Single Resposibility Principle),單一職責原則:**就一個類而言,應該僅有一個引起它變化的原因。 如果一個類的職責過多,就等於把這些職責耦合在一起,一個職責的變化可能會抑止這個類完成其他職責的能力。
**CARP(Composite/Aggregate Reuse Principle),合成/聚合複用原則:**設計模式告訴我們物件委託優於類繼承,從UML的角度講,就是關聯關係優於繼承關係。儘量使用合成/聚合、儘量不使用繼承。
實現:在一個新的物件裡面使用一些已有的物件,使之成為新物件的一部分,以整合其功能。
**LoD(Law Of Demeter or Principle of Least Knowledge),迪米特原則或最少知識原則:**就是說一個物件應當對其他物件儘可能少的瞭解。即只直接與朋友通訊,或者通過朋友與陌生人通訊。
朋友的定義(或關係):
(1)當前物件本身。
(2)以參量的形式傳入到當前物件方法中的物件。
(3)當前物件的例項變數直接引用的物件。
(4)當前物件的例項變數如果是一個聚集,那麼聚集中的元素也都是朋友。
(5)當前物件所建立的物件。
實現:
(1)在類的劃分上,應當建立有弱耦合的類。類之間的耦合越弱,就越有利於複用。
(2)在類的結構設計上,每一個類都應當儘量降低成員的訪問許可權。一個類不應當public自己的屬性,而應當提供取值和賦值的方法讓外界間接訪問自己的屬性。
(3)在類的設計上,只要有可能,一個類應當設計成不變類。
(4)在對其它物件的引用上,一個類對其它物件的引用應該降到最低。
(5)儘量限制區域性變數的有效範圍.
相關文章
- 你還記得大明湖畔的oop原則嗎?OOP
- 聊聊OOP中的設計原則以及訪問者模式OOP模式
- 物件導向程式設計(OOP)的七大原則物件程式設計OOP
- OCP原則——開閉原則
- 設計原則:開閉原則(OCP)
- 設計原則-依賴反轉原則
- SOLDI原則之DIP:依賴倒置原則
- 設計原則之【介面隔離原則】
- 設計原則:介面隔離原則(ISP)
- SOLID原則Solid
- 軟體設計原則—介面隔離原則
- 軟體設計原則—合成複用原則
- 設計原則之【單一職責原則】
- 設計原則之【開放封閉原則】
- 設計原則之【依賴反轉原則】
- 設計原則之【裡式替換原則】
- OOPOOP
- 物件導向設計的六大原則(SOLID原則)-——里氏替換原則物件Solid
- 軟體設計原則—依賴倒轉原則
- 開閉原則——物件導向程式設計原則物件程式設計
- 開閉原則
- 設計原則
- 《原則》總結
- python oopPythonOOP
- 設計模式六大原則(六)----開閉原則設計模式
- 必知必會的設計原則——介面隔離原則
- SOLID 設計原則Solid
- 引導分析原則
- URI設計原則
- 安全設計原則
- SOA四個原則
- 里氏替換原則
- MySQL索引建立原則MySql索引
- 重構的原則
- 2.2.1.1 共性的原則
- 幽默:STUPID原則 - simon
- 講講solid原則Solid
- SOLID原則筆記Solid筆記