通過封裝,繼承,多態(tài),把程序耦合度降低,使代碼可維護(hù),可擴(kuò)展,可復(fù)用,靈活性更好。
設(shè)計(jì)模式的原則
單一職責(zé)原則:就一個類而言,應(yīng)該僅有一個引起它變化的原因。
開放-封閉原則:對于擴(kuò)展是開放的,對于更改是封閉的。
依賴倒轉(zhuǎn)原則:實(shí)際上就是針對接口編程,而不要對實(shí)現(xiàn)編程
- 高層模塊不應(yīng)該依賴低層模塊。兩個都應(yīng)該依賴抽象
- 抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴抽象。
里氏代換原則:子類型必須能替換掉它們的父類型。
策略模式(Strategy)
它定義了算法家族,分別封裝起來,讓他們之間可以相互替換,此模式讓算法的變化,不會影響到使用算法的客戶。
裝飾模式(Decorator)
動態(tài)地給一個對象添加一些額外的職責(zé),就增加功能來說,裝飾模式比生成子類更加靈活
代理模式(Proxy)
對其他對象提供一種代理以控制對這個對象的訪問。
建造者模式(Builder)
建造者模式將一個復(fù)雜的對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。
狀態(tài)模式(State)
適配器模式(Adapter)
將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作
備忘錄模式(Memento)
簡單工廠模式
簡單功能工廠模式最大的優(yōu)點(diǎn)在于工廠類中包含了必要的邏輯判斷,根據(jù)客戶端的選擇條件,動態(tài)實(shí)例化相關(guān)的類。對于客戶端來說,去除了與具體產(chǎn)品的依賴。
工廠方法模式(Factory Method), 定義一個用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個類。工廠方法使一個類的實(shí)例化延遲到其子類。
工廠方法模式實(shí)現(xiàn)時,客戶端需要決定實(shí)例化哪一個工廠來實(shí)現(xiàn)運(yùn)算類,選擇判斷問題還是存在的,也就是說,工廠方法把簡單工廠的內(nèi)部邏輯判斷轉(zhuǎn)移到了客戶端代碼來進(jìn)行。