目錄
1.軟體設計的目標
2.物件導向設計原則
1.重新認識物件導向
2.物件導向設計原則
1.依賴倒置原則(dip)
2.開放封閉原則(ocp)
3.單一職責原則(srp)
4.liskov替換原則(lsp)
5.介面隔離原則(isp)
6.有限使用物件組合,而不是類繼承
7.封裝變化點
8.針對介面程式設計,而不是針對實現程式設計
3.將設計原則提公升為設計經驗
軟體設計的金科玉律:復用
如何解決複雜性:
分解:即分而治之,將大問題分解為小問題,複雜問題分解為簡單問題
抽象:由於不能掌握全部的複雜物件,我們選擇忽視它的非本質細節,而去處理泛化和理想化了的物件模型
變化是復用的天敵,物件導向設計最大的優勢在於抵禦變化
設計原則比設計模式更重要,它是評判乙個設計模式是否正確的標準。
如上圖所示:mainform為高層模組,而line和rect為底層模組,mainform卻依賴於line和rect等的變換,穩定的模組變得不穩定;經過修改後,抽取出了抽象類shape,mainform依賴shape,line和rect也依賴於shape,通過抽象實現了隔離變化將line和rect與穩定的高層模組隔離開
李建忠設計模式 抽象工廠
提供乙個介面,讓該介面負責建立一系列 相關或者相互依賴的物件 無需指定它們具體的類。設計模式 gof 抽象產品類角色 abstractproduct 為抽象工廠中相互依賴的每種產品定義抽象介面物件,也可以這樣說,有幾種產品,就要宣告幾個抽象角色,每乙個抽象產品角色和一種具體的產品相匹配。具體產品類 ...
李建忠設計模式 原型模式
目錄 1.原型模式 prototype 1.動機 2.定義 3.結構圖 4.模式的組成 2.例項 3.要點總結 4.參考 使用原型例項指定建立物件的種類,然後通過拷貝這些原型來建立新的物件。模式設計 gof 原型類 prototype 原型類,宣告乙個clone自身的介面 具體原型類 concret...
李建忠設計模式 構建器模式
目錄 1.構建器模式 1.動機 2.模式定義 3.結構圖 4.模式的組成 2.例項 1.描述 2.3.要點總結 4.實現要點 5.參考 將乙個複雜物件的構建與表示相分離,使得同樣的構建過程 穩定 可以建立不同的表示 變化 1 抽象建造者角色 builder 為建立乙個product物件的各個部件指定...