單一職責原則
概念:乙個類引起他變化的原因就乙個
優點:易維護、易擴充套件、易復用、靈活多樣
缺點:如果乙個類承擔的職責過多,就相當於把這些功能耦合在一起,乙個功能的變化可能會削弱或抑制這個類完成其他職責的能力。
開放-封閉原則
概念:對於開放是擴充套件的,對於更改是封閉的
面對需求時,對程式的改動是通過新增新**,而不是改變現有**
舉例:如對 計算程式,需要新增減法時,不是改變類,而是繼承以前抽象類,建乙個新類
開放-封閉原則是物件導向設計的核心
對頻繁變化的部分做出抽象,當然不能對任意的部分都抽象,拒絕不成熟的抽象和抽象本身一樣重要
依賴倒轉原則
概念:a高層模組不應該依賴低層模組。兩個都應該依賴抽象
b抽象不依賴細節,細節應該依賴抽象
通俗理解:針對介面程式設計,不要對實現程式設計
誰也不依靠誰,除了約定的介面,大家自由程式設計
舉例:1.收音機-耦合過度,壞乙個,互相影響互相依賴
2.電腦-強耦合弱內聚,高耦合低內聚,各個硬體可插拔,互不影響
裡式替換讓開放-封閉成為可能
裡式替換原則
把父類都替換成它的子類,程式的行為沒變化
子型別必須能夠代替他們的父型別
只有子類可以替換掉父類時,軟體單位功能不受影響,父類才是真正被復用,子類才能得以擴充套件
參考書籍
物件導向原則
1.單一職責原則 srp 單一職責原則 srp 就乙個類而言,應該僅有乙個引起它變化的原因。也就是說,不要把變化原因各不相同的職責放在一起,因為不同的變化會影響到不相干的職責。再通俗一點地說就是,不該你管的事情你不要管,管好自己的事情就可以了,多管閒事害了自己也害了別人。在軟體設計中,如果乙個類承擔...
物件導向原則
一.單一職責原則 srp 就乙個類而言,只有乙個引起它變化的原因。如果乙個類承載的職責過多,就等於把這些職責耦合在一起。乙個職責的變化可能削弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當發生變化時,設計會遭受意想不到的破壞。軟體設計真正要做的就是,發現職責並把職責相互分離。如果你能想...
物件導向原則
單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因 如果乙個類承擔了過多的職責,就等於把這些職責耦合在一起,這種耦合會導致脆弱的設計 開放 封閉原則 對於擴充套件時開放的,對於修改的封閉的 依賴倒轉原則 抽象不應該依賴細節,細節應該依賴於抽象,說白了,就是要針對介面程式設計,不要對實現程式設計...