打印本文 打印本文 关闭窗口 关闭窗口
Adapter 樣式
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2384  更新时间:2009/4/23 18:38:47  文章录入:mintao  责任编辑:mintao
i Magazine Issue 74 (October 2001) - The Adaptor Pattern by Peter Hinrichsen。
  • [GHJV95] E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. 中文版:物件導向設計模式,葉秉哲。培生,2001。

  • 讀者回應

    > 物件工廠如果改用 Builder ( 建構者樣式 )  來作又是如何﹖
    > 一樣使用延遲建構物件的方式,兩者利弊如何﹖

    雖然兩者同樣歸類於 Creational Patterns,作用也相似,但是以這份文件中的範例程式來說,Builder 並不適合用來取代 Factory。因為:

    • Factory 是用來建立同一族系的物件,每次只建立一個物件,而且建立之後就回傳給用戶端執行其他操作。Builder 則封裝了多個物件的組合過程,讓衍生的 Concrete Builder 來定義物件組合的方式。
    • Builder 樣式雖然可以透過 Director 建立同一族系的物件,但是建立出來的 Builder 物件卻是給用戶端繼續組合出最終的 Product 複合物件,這跟文中提到的延遲建構的方法與使用時機完全不同。
    • Factory 所建立的物件都符合相同的介面(抽象類別),Builder 建立的物件卻都是具象類別(因為 預設 Builder 所建立的物件彼此差異性較大,可能無法訂出統一的介面)。而用戶端在使用壓縮元件時,希望的是一致的呼叫方式,不要因為壓縮格式的不同而用另一套呼叫方式,所以 Factory 在這裡比較適合。

    總之,如果要建立複合物件的話,可以用 Builder 樣式,而這篇文章裡面的 Factory 的目的在於動態切換壓縮格式,只需建立單一物件,因此用 Factory 比較適合。

    上一页  [1] [2] [3] 

    打印本文 打印本文 关闭窗口 关闭窗口