1 / 17

Design Pattern

Design Pattern. 物件導向軟體工程概念模型. 何謂樣式 ?. 依據樣式理論大師亞歷山大 (Christopher Alexander) 之定義 ﹕ 「樣式是某外在背景環境 (Context) 下 ﹐ 對特定問題 (Problem) 的慣用解決之道 (Solution) 」    樣式是不斷的重複發生,而有其重複性。但重複的不是問題的本身,而是問題的本質,所以要把不同問題以相同的樣式來處理,勢必要擷取其本質,也就是 『 抽象 』 。所以研究樣式必須重視問題本質而非問題的表象。同樣的問題的背景環境及解決之道也是抽象的。 . 樣式的種類.

ros
Download Presentation

Design Pattern

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design Pattern

  2. 物件導向軟體工程概念模型

  3. 何謂樣式? • 依據樣式理論大師亞歷山大(Christopher Alexander) 之定義﹕ 「樣式是某外在背景環境(Context) 下﹐對特定問題(Problem)的慣用解決之道(Solution)」    • 樣式是不斷的重複發生,而有其重複性。但重複的不是問題的本身,而是問題的本質,所以要把不同問題以相同的樣式來處理,勢必要擷取其本質,也就是『抽象』。所以研究樣式必須重視問題本質而非問題的表象。同樣的問題的背景環境及解決之道也是抽象的。

  4. 樣式的種類 • 分析樣式(Analysis Patterns) • 架構樣式或程序樣式(Architecture Patterns or Process Patterns) • 設計樣式(Design Patterns)

  5. 設計樣式的四個主要成份 • 樣式名稱 • 問題 • 解決方案 • 效果

  6. Design Pattern Catalog • Creational Patterns • Structural Patterns • Behavioral Patterns • Fundamental Design Patterns • Partitioning Patterns • Concurrency Patterns • …….

  7. Creational Patterns - Factory • 工廠方法(Factory Method) • Sample sample=Factory.creator(); • 抽象工廠(Abstract Factory). • 定義一個抽象類別,由另一個類別繼承它 • Sample sample=Factory.creator(); • Sample2 sample=Factory.creator2();

  8. Creational Patterns – Abstract Factory

  9. 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()

  10. Structural Patterns - Facade • 爲子系統中的一組介面提供一個一致的介面。

  11. Structural Patterns - Proxy • 爲其他物件提供一種代理以控制對這個物件的存取。 • 用途: 1.授權機制 2.不能直接操作某個物件

  12. Structural Patterns - Adapter • 將兩個不相容的類別糾合在一起使用,屬於結構型模式,需要有Adaptee(被適配者)和Adaptor(適配器)兩個身份

  13. Structural Patterns - Decorator • 動態給一個物件添加一些額外的職責,就象在牆上刷油漆.使用Decorator模式相比用生成子類方式達到功能的擴充顯得更為靈活.

  14. Structural Patterns - Flyweight • 以共享機制有效支援一大堆小規模的物件

  15. Behavior Patterns - Observer • 定義一對多的物件依存關係,讓物件狀態一有變動,就自動通知其它相依物件作該作的更新動作。

  16. Behavior Patterns - Strategy • 定義一整族演算法,將每一個演算法封裝起來,可動態互換使用。

  17. Reference • http://www.dotspace.idv.tw • http://www.mindspring.com/~mgrand/pattern_synopses.htm

More Related