170 likes | 452 Views
Design Pattern. 物件導向軟體工程概念模型. 何謂樣式 ?. 依據樣式理論大師亞歷山大 (Christopher Alexander) 之定義 ﹕ 「樣式是某外在背景環境 (Context) 下 ﹐ 對特定問題 (Problem) 的慣用解決之道 (Solution) 」 樣式是不斷的重複發生,而有其重複性。但重複的不是問題的本身,而是問題的本質,所以要把不同問題以相同的樣式來處理,勢必要擷取其本質,也就是 『 抽象 』 。所以研究樣式必須重視問題本質而非問題的表象。同樣的問題的背景環境及解決之道也是抽象的。 . 樣式的種類.
E N D
何謂樣式? • 依據樣式理論大師亞歷山大(Christopher Alexander) 之定義﹕ 「樣式是某外在背景環境(Context) 下﹐對特定問題(Problem)的慣用解決之道(Solution)」 • 樣式是不斷的重複發生,而有其重複性。但重複的不是問題的本身,而是問題的本質,所以要把不同問題以相同的樣式來處理,勢必要擷取其本質,也就是『抽象』。所以研究樣式必須重視問題本質而非問題的表象。同樣的問題的背景環境及解決之道也是抽象的。
樣式的種類 • 分析樣式(Analysis Patterns) • 架構樣式或程序樣式(Architecture Patterns or Process Patterns) • 設計樣式(Design Patterns)
設計樣式的四個主要成份 • 樣式名稱 • 問題 • 解決方案 • 效果
Design Pattern Catalog • Creational Patterns • Structural Patterns • Behavioral Patterns • Fundamental Design Patterns • Partitioning Patterns • Concurrency Patterns • …….
Creational Patterns - Factory • 工廠方法(Factory Method) • Sample sample=Factory.creator(); • 抽象工廠(Abstract Factory). • 定義一個抽象類別,由另一個類別繼承它 • Sample sample=Factory.creator(); • Sample2 sample=Factory.creator2();
Creational Patterns - Singleton • Singleton模式主要作用是保證在Java應用程式中,一個Class只有一個實例存在。 public class Singleton { private static Singleton _instance = null; public static Singleton getInstance() { if (_instance==null)_instancenew Singleton() return _instance; } } 呼叫方法:Singleton.getInstance()
Structural Patterns - Facade • 爲子系統中的一組介面提供一個一致的介面。
Structural Patterns - Proxy • 爲其他物件提供一種代理以控制對這個物件的存取。 • 用途: 1.授權機制 2.不能直接操作某個物件
Structural Patterns - Adapter • 將兩個不相容的類別糾合在一起使用,屬於結構型模式,需要有Adaptee(被適配者)和Adaptor(適配器)兩個身份
Structural Patterns - Decorator • 動態給一個物件添加一些額外的職責,就象在牆上刷油漆.使用Decorator模式相比用生成子類方式達到功能的擴充顯得更為靈活.
Structural Patterns - Flyweight • 以共享機制有效支援一大堆小規模的物件
Behavior Patterns - Observer • 定義一對多的物件依存關係,讓物件狀態一有變動,就自動通知其它相依物件作該作的更新動作。
Behavior Patterns - Strategy • 定義一整族演算法,將每一個演算法封裝起來,可動態互換使用。
Reference • http://www.dotspace.idv.tw • http://www.mindspring.com/~mgrand/pattern_synopses.htm