掌握設計模式,有利於開發中,對系統的複用進行有利的選擇。可以說,程序員只有真正掌
握了模式的設計,理解其中的精髓,才能把自己的編碼發揮到最高的水平。由於時間關係,一直未能讀完設計模式,每次都是斷斷續續....今日難得有時間學習
一下,打算花點時間和精力把java設計模式中的相關用法總結一下,其中總結的資料大多數來自網上一些相資料的集合,再加上個人的一些心得與體會。閒話不
必多說,言歸正傳。
一般來說,java分23種設計模式。我們按兩條準則進行分類。
第一準則(目的):
模式是用來完成什麼工作的。可以分爲:創建型(與對象的創建有關)、結構型(處理類或對象的組合)、行爲
型(對類或對象怎樣交互和怎樣分配職責進行描述)。
第二準則(範圍):
指定模式主要是用於類還是用於對象。類模式處理類和子類之間的關係,這些關係通過繼承建立,是靜態的,在
編譯時便確定了下來。對象模式處理對象間的關係,這些關係在運行時刻是可以變化的,更具動態性。從某種意義上來說,幾乎所有的模式都使用繼承機制。“類模
式”只指那些集中於處理類間關係的模式,而大部分模式都屬於對象模式的範疇。
總述
1.
創建型類模式將對象的部分創建工作延遲到子類,而創建型對象模式則將它延遲到另一個對象中。
2.
結構型類模式使用繼承機制來組合類,而結構型對象模式則描述了對象的組裝方式。
3.
行爲型類模式使用繼承描述算法和控制流,而行爲型對象模式則描述一組對象怎樣作完成單個對象所無法完成的
任務。
如下表所示:
|
創建型
|
結構型
|
行爲型
|
類
|
工廠方法
(
Factory Method
)
|
適配器
(類:
Adapter
)
|
解釋器
(
Interpreter
)
模板方法
(
Template
Method
)
|
對象
|
抽象工廠
(
Abstract Factory
)
生成器
(
Builder
)
原型
(
Prototype
)
單件
(
Singleton
)
|
適配器
(對象:
Adapter
)
橋接
(
Bridge
)
組合
(
Composite
)
裝飾
(
Decorator
)
外觀
(
Facade
)
享元
(
Flyweight
)
代理
(
Proxy
)
|
職責鏈
(
Chain of
Responsibilit
y
)
命令
(
Command
)
迭代器
(
Iterator
)
中介者
(
Mediator
)
備忘錄
(
Memento
)
觀察者
(
Observer
)
狀態
(
State
)
策略
(
Strategy
)
訪問者
(
Visitor
)
|