
2008年1月23日
Strategy--定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可相互替換。本模式使得算法可獨(dú)立于使用它的客戶而變化。
參與者
Strategy
- -- 定義所有支持的算法的公共接口。Context使用這個(gè)接口來調(diào)用某ConcreteStrategy定義的算法。
ConcreteStrategy(具體策略)
- -- 以Strategy接口實(shí)現(xiàn)英雄模范具體算法。
Context(上下文)
- --用一個(gè)ConcreteStrategy對象來配置。
- --維護(hù)一個(gè)對Strategy對象的引用。
- --可定義一個(gè)接口來讓Strategy訪問它的數(shù)據(jù)。
適用性
- 當(dāng)存在以下情況時(shí)使用Strategy模式
- 許多相關(guān)的類僅僅是行為有異。“策略”提供了一種用多個(gè)行為中的一個(gè)行為來配置一個(gè)類的方法。
- 需要使用一個(gè)算法的不同變體。
- 算法使用了客戶不應(yīng)該知道的數(shù)據(jù)??墒褂貌呗阅J揭员苊獗┞稄?fù)雜的、與算法相關(guān)的數(shù)據(jù)結(jié)構(gòu)。
posted @
2008-01-23 10:52 Sam Wang 閱讀(306) |
評論 (2) |
編輯 收藏

2008年1月22日
Composite模式描述了如何使用遞歸組合,使得用戶不必對這些類進(jìn)行區(qū)別。

Composite的關(guān)鍵是一個(gè)抽象類,它既可以代表圖元,又可以你表圖元的容器。
參于者
Component
-
--在適當(dāng)?shù)那闆r下,實(shí)現(xiàn)所有類共有接口的缺省行為。
-
--聲明一個(gè)接口用于訪問和管理Composite的子組件。
-
--(可選)在遞歸結(jié)構(gòu)中定義一個(gè)接口,用于訪問一個(gè)父部件,并在合適的情況下實(shí)現(xiàn)它。
Leaf
-
--在組合中表示葉節(jié)點(diǎn)對象,葉節(jié)點(diǎn)沒有子節(jié)點(diǎn)。
-
--在組合中定義圖元對象的行為。
Composite
-
--定義有子部件的那些部件的行為。
-
--存儲(chǔ)子部件
Client
-
--通過Component接口操縱組合部件的對象。
適用性
你想表示對象的部份-整體層次結(jié)構(gòu)。
你希望用戶忽略組合對象與單個(gè)對象的不同,用戶將統(tǒng)一地使用組合結(jié)構(gòu)中的所有對象。
posted @
2008-01-22 18:04 Sam Wang 閱讀(127) |
評論 (0) |
編輯 收藏

2007年12月31日




- Collaboration Diagram -- 協(xié)作圖

- Deployment Diagram -- 開發(fā)圖


- State Diagram -- 狀態(tài)圖

posted @
2007-12-31 16:34 Sam Wang 閱讀(572) |
評論 (0) |
編輯 收藏
2008將要開始了,在將要到來的新年里,要好好寫點(diǎn)東西出來,一為自己積累些心得體會(huì),二為貢獻(xiàn)下自己的心得體會(huì),哈哈!!
同時(shí)還是希望能在這個(gè)java大家庭里跟大伙一起交流交流呀!??!
posted @
2007-12-31 10:16 Sam Wang 閱讀(138) |
評論 (0) |
編輯 收藏