一. 單一職責原則(srp)
就乙個類而言,只有乙個引起它變化的原因。
如果乙個類承載的職責過多,就等於把這些職責耦合在一起。乙個職責的變化可能削弱或抑制這個類完成其他職責的能力。
這種耦合會導致脆弱的設計,當發生變化時,設計會遭受意想不到的破壞。
軟體設計真正要做的就是,發現職責並把職責相互分離。
如果你能想到多於乙個動機去改變乙個類,那麼這個類就具有多於乙個的職責,應該進行分離。
二.開閉原則(ocp)
軟體實體(類,模組,函式)應該是可擴充套件,不可修改的。
無論模組多少封閉,都會存在一些對之無法封閉的變化,既然不能完全封閉,設計人員就要對他設計的模組應該對哪些變化進行封閉做出選擇。他必須猜測出最有可能發生變化的種類,然後構造抽象對這些變化進行隔離。
面對需求的變化,通過增加新**來實現而不是改變現有的**。
開發人員可以僅對程式中出現頻繁變化的部分進行抽象,然而對於應用程式的每個部分都進行刻意的抽象同樣不是乙個好主意,拒絕不成熟的抽象與抽象一樣重要。
三.依賴倒置原則(dip)
高層模組不應該依賴於低層模組,兩者都應該依賴於抽象。
抽象不應該依賴於細節,細節應該依賴於抽象。
四.黎克特制替換原則(lsp)
子類必須能替換它的父型別。
五.介面分離原則(isp)
採用多個與特定類有關的介面,比採用乙個通用的涵蓋多種業務的介面更好。
如果你擁有乙個針對多個客戶的類,為每乙個客戶建立特定業務介面,然後使該客戶類繼承多個特定業務介面將比直接載入客戶所需所有方法有效。
六.迪公尺特原則(lop)
迪公尺特原則又叫最少知識原則:如果兩個類不直接發生通訊,那麼這兩個類就不應該發生直接的相互作用。
如果乙個類要呼叫另乙個類,則通過第三者呼叫。
迪公尺特法則首先強調的前提是在類的結構設計上,每乙個類都應當盡量降低成員的訪問許可權。
迪公尺特法則其根本思想強調的是類之間的松耦合。類之間的耦合越弱,越利於復用,乙個處於弱耦合的類被修改,不會對有關係的類造成波及。
七.合成/聚合復用原則(composite/aggregate reuse principle或carp)
合成/聚合復用原則(composite/aggregate reuse principle或carp):經常又叫做合成復用原則(composite reuse principle或crp),就是在乙個新的物件裡面使用一些已有的物件,使之成為新物件的一部分;新物件通過向這些物件的委派達到復用已有功能的目的。我白了就是要盡量使用合成/聚合,盡量不要使用繼承。
物件導向原則
1.單一職責原則 srp 單一職責原則 srp 就乙個類而言,應該僅有乙個引起它變化的原因。也就是說,不要把變化原因各不相同的職責放在一起,因為不同的變化會影響到不相干的職責。再通俗一點地說就是,不該你管的事情你不要管,管好自己的事情就可以了,多管閒事害了自己也害了別人。在軟體設計中,如果乙個類承擔...
物件導向原則
單一職責原則 概念 乙個類引起他變化的原因就乙個 優點 易維護 易擴充套件 易復用 靈活多樣 缺點 如果乙個類承擔的職責過多,就相當於把這些功能耦合在一起,乙個功能的變化可能會削弱或抑制這個類完成其他職責的能力。開放 封閉原則 概念 對於開放是擴充套件的,對於更改是封閉的 面對需求時,對程式的改動是...
物件導向原則
單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因 如果乙個類承擔了過多的職責,就等於把這些職責耦合在一起,這種耦合會導致脆弱的設計 開放 封閉原則 對於擴充套件時開放的,對於修改的封閉的 依賴倒轉原則 抽象不應該依賴細節,細節應該依賴於抽象,說白了,就是要針對介面程式設計,不要對實現程式設計...