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