1. 六大原則
1. 單一職責(zé)原則(Single Responsibility Principle)
2. 開閉原則(Open Close Principle)
3. 里氏替換原則(Liskov Substitution Principle)
4. 依賴倒置原則(Dependence Inversion Principle)
5. 接口隔離原則(Interface Segregation Principle)
6. 迪米特原則(Law Of Demeter)
2. 創(chuàng)建型模式
創(chuàng)建型模式(Creational Pattern)對(duì)類的實(shí)例化過程進(jìn)行了抽象鲜屏,能夠?qū)④浖K中對(duì)象的創(chuàng)建和對(duì)象的使用分離烹看。
簡(jiǎn)單工廠模式(Simple Factory):
工廠方法模式(Factory Method):
定義一個(gè)用于創(chuàng)建對(duì)象的接口国拇,讓子類決定實(shí)例化哪個(gè)類
抽象工廠模式(Abstract Factory):
為創(chuàng)建一組相關(guān)或者相互依賴的對(duì)象提供一個(gè)接口,而不需要指定他們的具體類
原型模式(Prototype):
用原型實(shí)例指定創(chuàng)建對(duì)象的種類惯殊,并通過拷貝這些原型創(chuàng)建新的對(duì)象
單例模式(Singleton):
確保某一個(gè)類只有一個(gè)實(shí)例酱吝,而且自行實(shí)例化,并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例土思。
建造者模式(Builder):
將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離务热,使得同樣的創(chuàng)建過程可以創(chuàng)建不同的表示
3. 結(jié)構(gòu)型模式
結(jié)構(gòu)型模式(Structural Pattern):
描述如何將類或者對(duì)象結(jié)合在一起形成更大的結(jié)構(gòu)
適配器模式(Adapter):
適配器模式把一個(gè)類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個(gè)類能夠在一起工作
橋接模式(Bridge):
將抽象部分與實(shí)現(xiàn)部分分離己儒,使他們可以獨(dú)立地進(jìn)行變化
組合模式(Composite):
將對(duì)象組合成樹形結(jié)構(gòu)以表示 部分 整體的層次結(jié)構(gòu) 使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性
裝飾模式(Decorator):
動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)崎岂。就增加功能來說,裝飾模式相比生成子類更為靈活
外觀模式(Facade):
要求一個(gè)子系統(tǒng)的外部與其內(nèi)部的通信必須通過一個(gè)統(tǒng)一的對(duì)象進(jìn)行址愿。提供一個(gè)高層次的接口该镣,使得子系統(tǒng)更易于使用。
享元模式(Flyweight):
使用共享對(duì)象可有效地支持大量的細(xì)粒度的對(duì)象
代理模式(Proxy):
為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問
4. 行為型模式
行為型模式(Behavioral Pattern):是對(duì)在不同的對(duì)象之間劃分責(zé)任和算法的抽象化响谓。
職責(zé)鏈模式(Chain of Responsibility):
使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免了請(qǐng)求的發(fā)送者和接受者之間的耦合關(guān)系省艳。將這些對(duì)象連成一條鏈娘纷,并沿著這條鏈傳遞該請(qǐng)求,直到有對(duì)象處理它為止跋炕。
命令模式(Command):
將一個(gè)請(qǐng)求封裝成一個(gè)對(duì)象赖晶,從而讓用戶使用不同的請(qǐng)求把客戶端參數(shù)化;對(duì)請(qǐng)求排隊(duì)或者記錄請(qǐng)求日志辐烂,以及支持可撤銷的操作
解釋器模式(Interpreter):
給定一門語言遏插,定義它的文法的一種表示,并定義一個(gè)解釋器纠修,該解釋器使用該表示來解釋語言中的句子.
迭代器模式(Iterator):
提供一種方法順序訪問一個(gè)容器對(duì)象中的各個(gè)元素胳嘲,而又不需要暴露該對(duì)象的內(nèi)部表示
中介者模式(Mediator):
中介者模式包裝了一系列對(duì)象相互作用的方式,使得這些對(duì)象不必相互明顯作用扣草。從而使它們可以松散耦合了牛。當(dāng)某些對(duì)象之間的作用發(fā)生改變時(shí),不會(huì)立即影響其他的一些對(duì)象之間的作用辰妙。保證這些作用可以彼此獨(dú)立的變化鹰祸。中介者模式將多對(duì)多的相互作用轉(zhuǎn)化為一對(duì)多的相互作用。中介者模式將對(duì)象的行為和協(xié)作抽象化密浑,把對(duì)象在小尺度的行為上與其他對(duì)象的相互作用分開處理蛙婴。
備忘錄模式(Memento):
在不破壞封閉的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài)尔破,并在改對(duì)象之外保存這個(gè)狀態(tài)街图,這樣浇衬,以后就可將該對(duì)象恢復(fù)到原先保存的狀態(tài)
觀察者模式(Observer):
定義對(duì)象間一種一對(duì)多的依賴關(guān)系,使得每當(dāng)一個(gè)對(duì)象改變狀態(tài)台夺,則所有依賴于它的對(duì)象都會(huì)得到通知并被自動(dòng)更新
狀態(tài)模式(State):
當(dāng)一個(gè)對(duì)象的內(nèi)在狀態(tài)改變時(shí)允許改變其行為径玖,這個(gè)對(duì)象看起來像改變了其類
策略模式(Strategy):
定義一系列算法,將每一個(gè)算法封裝起來颤介,并讓它們可以相互替換梳星。策略模式讓算法獨(dú)立于使用它的客戶而變化
模板方法模式(Template Method):
定義一個(gè)操作中的算法的框架,而將一些步驟延遲到子類中滚朵,使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可沖定義該算法的某些特定步驟
訪問者模式(Visitor):
封裝一些作用于某種數(shù)據(jù)結(jié)構(gòu)中的各元素的操作冤灾,它可以在不改變這個(gè)數(shù)據(jù)結(jié)構(gòu)的前提下定義作用于這些元素的新的操作