Java總共有23中常見的設(shè)計(jì)模式,。它們主要可以分為3類,,創(chuàng)建型,結(jié)構(gòu)型以及行為型,。 創(chuàng)建型的設(shè)計(jì)模式有: 一、Singleton,單例模式:保證一個(gè)類只有一個(gè)實(shí)例,,并提供一個(gè)唯一的全局訪問點(diǎn)。 二,、Abstract Factory,抽象工廠:提供一個(gè)創(chuàng)建一系列相關(guān)或者互相依賴的對(duì)象的接口,,而無需指定它們的具體類,。 三、Factory Method,工廠方法:定義一個(gè)用于創(chuàng)建對(duì)象的接口,,F(xiàn)actory Method將一個(gè)類的實(shí)例化延遲到了子類,。 四,、Builder,建造模式:將一個(gè)復(fù)雜類的構(gòu)建和表示分離開來,使得具有相同構(gòu)建過程的類可以具有不同的表示,。 五、Prototype,,原型模式:用原型實(shí)例來指定創(chuàng)建對(duì)象的種類,,并且通過拷貝原型來創(chuàng)建新的對(duì)象。 行為型的設(shè)計(jì)模式有: 六,、Itrator,迭代器模式:提供一個(gè)方法順序的遍歷一個(gè)聚合對(duì)象的內(nèi)部元素,,而無需曝露這個(gè)對(duì)象的內(nèi)部表示。 七,、Observer,觀察者模式:定義對(duì)象之間一對(duì)多的關(guān)系,,當(dāng)一個(gè)對(duì)象發(fā)生變化時(shí),依賴于它的對(duì)象都會(huì)得到相應(yīng)的通知更新,。 八、Templete Method,模板方法:定義一個(gè)操作中的算法的骨架,,而將一些步驟延遲到子類,Templete Method使得子類可以不改變算法的骨架就可以改變算法中的特定的步驟,。 九、Command,,命令模式:將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可以用不同的請(qǐng)求對(duì)用戶進(jìn)行參數(shù)化,,對(duì)請(qǐng)求排隊(duì)和記錄請(qǐng)求日志,,以及支持可撤銷的操作,。 十、State,,狀態(tài)模式:允許對(duì)象在其狀態(tài)改變時(shí)改變其行為,,對(duì)象看起來好像是改變了它的類。 十一,、Strategy,策略模式:定義一系列的算法,,把它們一個(gè)個(gè)的封裝起來,,使得它們可以互相的替換,,本模式可以使算法可以獨(dú)立于使用它的客戶。 十二,、China of Responsibility,,職責(zé)鏈模式:使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,,避免請(qǐng)求者和處理者之間的耦合關(guān)系。 十三,、Mediator,中介模式:利用一個(gè)中介對(duì)象封裝一些對(duì)象的交互,。 十四,、Visitor,,訪問者模式:表示一個(gè)作用于某個(gè)對(duì)象結(jié)構(gòu)中的各個(gè)元素的操作,它使你可以在不改變各個(gè)元素類的前提下定義作用于這個(gè)元素的新操作,。 十五、Interpreter,,解釋器模式:給定一個(gè)語言,定義它的一個(gè)文法的表示,,定義一個(gè)解釋器,,這個(gè)解釋器使用該表示來解釋該語言中的句子,。 十六、Memento,,備忘錄模式:在不破換對(duì)象的前提下,捕捉對(duì)象的內(nèi)部狀態(tài),,并在該對(duì)象之外保存這個(gè)狀態(tài)。 結(jié)構(gòu)型的設(shè)計(jì)模式有: 十七,、Composite,,組合模式:將對(duì)象組合成樹形結(jié)構(gòu)以表示部分整體的關(guān)系,,使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性,。 十八,、Facade,外觀模式:為子系統(tǒng)中的一組結(jié)構(gòu)提供一致的界面,,F(xiàn)acade提供這一高層接口,這一接口使得系統(tǒng)更易使用,。 十九、Proxy,,代理模式:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問,。 二十、Adapter,適配器模式:將一類接口轉(zhuǎn)換成用戶希望的一類接口,,Adapter使得原本由于接口不兼容而不能在一起工作的那些類可以一起工作了。 二十一,、Decorator,裝飾模式:動(dòng)態(tài)的給對(duì)象添加一些額外的職責(zé),,就增加的功能來說,Decorator比其生成子類的方法要更加的靈活,。 二十二,、Bridge,橋模式:將抽象部分和它的實(shí)現(xiàn)部分分離開來,,使得它們可以獨(dú)立的變化。 二十三,、Flyweight,,享元模式:它使用共享物件,,用來盡可能的減少內(nèi)存使用量以及分享資訊給盡可能多的相似物件,。 |
|