公眾號(hào):mywangxiao
及時(shí)發(fā)布考試資訊
分享考試技巧、復(fù)習(xí)經(jīng)驗(yàn)
新浪微博 @wangxiaocn關(guān)注微博
聯(lián)系方式 400-18-8000
整個(gè)設(shè)計(jì)模式貫穿一個(gè)原理:面對(duì)介面編程,而不是面對(duì)實(shí)現(xiàn),(面向物件編程應(yīng)該改爲(wèi)面向介面編程)。目標(biāo)原則是:降低耦合,增強(qiáng)靈活性。
一、創(chuàng)建模式
1. 設(shè)計(jì)模式之Factory(工廠方法和抽象工廠)
使用工廠模式就象使用new一樣頻繁.
2. 設(shè)計(jì)模式之Prototype(原型)
用原型實(shí)例指定創(chuàng)建物件的種類,并且通過拷貝這些原型創(chuàng)建新的物件。
3. 設(shè)計(jì)模式之Builder
汽車由車輪 方向盤 發(fā)動(dòng)機(jī)很多部件組成,同時(shí),將這些部件組裝成汽車也是一件復(fù)雜的工作,Builder模式就是將這兩種情況分開進(jìn)行。
4. 設(shè)計(jì)模式之Singleton(單態(tài))
保證一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)
二、結(jié)構(gòu)模式
1. 設(shè)計(jì)模式之Facade
可擴(kuò)展的使用JDBC針對(duì)不同的資料庫編程,Facade提供了一種靈活的實(shí)現(xiàn)。
2. 設(shè)計(jì)模式之Proxy
以Jive爲(wèi)例,剖析代理模式在用戶級(jí)別授權(quán)機(jī)制上的應(yīng)用
3. 設(shè)計(jì)模式之Adapter
使用類再生的兩個(gè)方式:組合(new)和繼承(extends),這個(gè)已經(jīng)在"thinking in java"中提到過。
4. 設(shè)計(jì)模式之Composite
就是將類用樹形結(jié)構(gòu)組合成一個(gè)單位。你向別人介紹你是某單位,你是單位元元中的一個(gè)元素,別人和你做買賣,相當(dāng)於和單位做買賣。文章中還對(duì)Jive再進(jìn)行了剖析。
5. 設(shè)計(jì)模式之Decorator
Decorator是個(gè)油漆工,給你的東東的外表刷上美麗的顔色。
6. 設(shè)計(jì)模式之Bridge
將"牛郎織女"分開(本應(yīng)在一起,分開他們,形成兩個(gè)介面),在他們之間搭建一個(gè)橋(動(dòng)態(tài)的結(jié)合)
7. 設(shè)計(jì)模式之Flyweight
提供Java運(yùn)行性能,降低小而大量重復(fù)的類的開銷。
三、 行爲(wèi)模式
1. 設(shè)計(jì)模式之Template
實(shí)際上向你介紹了爲(wèi)什麼要使用Java 抽象類,該模式原理簡單,使用很普遍。
2. 設(shè)計(jì)模式之Memento
很簡單一個(gè)模式,就是在記憶體中保留原來資料的拷貝。
3. 設(shè)計(jì)模式之Observer
介紹如何使用Java API提供的現(xiàn)成Observer
4. 設(shè)計(jì)模式之Chain of Responsibility
各司其職的類串成一串,好象擊鼓傳花,當(dāng)然如果自己能完成,就不要推委給下一個(gè)。
5. 設(shè)計(jì)模式之Command
什麼是將行爲(wèi)封裝,Command是最好的說明。
6. 設(shè)計(jì)模式之State
狀態(tài)是編程中經(jīng)常碰到的實(shí)例,將狀態(tài)物件化,設(shè)立狀態(tài)變換器,便可在狀態(tài)中輕松切換。
7. 設(shè)計(jì)模式之Strategy
不同演算法各自封裝,用戶端可隨意挑選需要的演算法。
8. 設(shè)計(jì)模式之Mediator
Mediator很象十字路口的紅綠燈,每個(gè)車輛只需和紅綠燈交互就可以。
9. 設(shè)計(jì)模式之Interpreter
主要用來對(duì)語言的分析,應(yīng)用機(jī)會(huì)不多。
10. 設(shè)計(jì)模式之Visitor
訪問者在進(jìn)行訪問時(shí),完成一系列實(shí)質(zhì)性操作,而且還可以擴(kuò)展。
11. 設(shè)計(jì)模式之Iterator
這個(gè)模式已經(jīng)被用來遍歷Collection中物件。使用頻率很高。在Java中無需專門闡述,在大多數(shù)場合也無需自己制造一個(gè)Iterator,只要將物件裝入Collection中,我們就直接可以使用Iterator模式。
更多關(guān)注:JAVA考試經(jīng)驗(yàn) JAVA輔導(dǎo)資料 JAVA歷年真題
(責(zé)任編輯:xy)