java設計模式面試題

  你用過哪種設計模式?

設計:design

模式:pattern

框架:framework

創建模式,結構模式和行為模式

gof設計模式

a.創建模式

設計模式之factory(工廠模式)

使用工廠模式就象使用new一樣頻繁.

設計模式之prototype(原型模式)

用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。

設計模式之builder

汽車由車輪 方向盤 發動機很多部件組成,同時,將這些部件組裝成汽車也是一件複雜的工作,builder模式就是將這兩種情況分開進行。

設計模式之singleton(單態模式)

保證一個類只有一個實例,並提供一個訪問它的全局訪問點

  b.結構模式

設計模式之facade

可擴展的使用jdbc針對不同的資料庫編程,facade提供了一種靈活的實現.

設計模式之proxy

以jive為例,剖析代理模式在用戶級別授權機制上的套用

設計模式之adapter

使用類再生的兩個方式:組合(new)和繼承(extends),這個已經在"thinking in java"中提到過.

設計模式之composite

就是將類用樹形結構組合成一個單位.你向別人介紹你是某單位,你是單位中的一個元素,別人和你做買賣,相當於和單位做買賣。文章中還對jive再進行了剖析。

設計模式之decorator

decorator是個油漆工,給你的東東的外表刷上美麗的顏色.

設計模式之bridge

將"牛郎織女"分開(本應在一起,分開他們,形成兩個接口),在他們之間搭建一個橋(動態的結合)

設計模式之flyweight

提供java運行性能,降低小而大量重複的類的開銷.

c.行為模式

設計模式之template

實際上向你介紹了為什麼要使用java 抽象類,該模式原理簡單,使用很普遍.

設計模式之memento

很簡單一個模式,就是在記憶體中保留原來數據的拷貝.

設計模式之observer

介紹如何使用java api提供的現成observer

設計模式之chain of responsibility

各司其職的類串成一串,好象擊鼓傳花,當然如果自己能完成,就不要推委給下一個.

設計模式之command

什麼是將行為封裝,command是最好的說明.

設計模式之state

狀態是編程中經常碰到的實例,將狀態對象化,設立狀態變換器,便可在狀態中輕鬆切換.

設計模式之strategy

不同算法各自封裝,用戶端可隨意挑選需要的算法.

設計模式之mediator

mediator很象十字路口的紅綠燈,每個車輛只需和紅綠燈互動就可以.

設計模式之interpreter

主要用來對語言的分析,套用機會不多.

設計模式之visitor

訪問者在進行訪問時,完成一系列實質性操作,而且還可以擴展.

設計模式之iterator

這個模式已經被整合入java的collection.在大多數場合下無需自己製造一個iterator,只要將對象裝入collection中,直接使用iterator進行對象遍歷。