《設計模式之禪》——創建類模式大PK

1.工廠方法模式VS建造者模式

      工廠方法模式注重的是整體對象的創建方法,而建造者模式注重的是部件構建的過程,旨在通過一步步的精確構造創建出一個複雜的對象。

1.1最佳實踐

      工廠方法模式和建造者模式都屬於對象創建類模式,都用來創建類的對象。但它們之間的區別還是比較明顯的:

  • 意圖不同
          在工廠方法模式裏,我們關注的是一個產品整體,例如超人整體,無須關心產品的各部分是如何創建出來的;但在建造者模式中,一個具體產品的產生是依賴各個部件的產生以及裝配順序。簡單地說,工廠模式是一個對象創建的粗線條應用,建造者模式則是通過細線條勾勒出一個複雜對象,關注的產品組成部分的創建過程。
  • 產品的複雜度不同
          工廠方法模式創建的產品一般都是單一性質的產品,而建造者模式創建的則是一個複合產品。工廠方法模式的對象粒度比較粗,建造者模式的產品對象粒度比較細。

2.抽象工廠模式VS建造者模式

      抽象工廠模式實現對產品家族的創建,不需要關心構建過程,只關心什麼產品由什麼工廠生產即可。

2.1最佳實踐

      抽象工廠模式中使用“工廠”來描述構建者,就好比一個一個的工廠,它是從一個更高層次去看對象的構建,具體到工廠內部還有很多的車間。而在建造者模式中使用“車間”來描述構建者。不同的車間完成不同的創建和裝配任務,它更關心過程。
      抽象工廠模式比建造者模式的尺度要大,它關注產品整體,而建造者模式關注構建過程,因此建造者模式可以很容易地創建出一個嶄新的產品,只要導演類能夠提供具體的工藝流程。也正因爲如此,兩者的應用場景截然不同,如果希望屏蔽對象的創建過程,只提供一個封裝良好的對象,則可以選擇抽象工廠方法模式。而創建者模式可以用在構建的裝配方面,如通過裝配不同的組件或者相同組件的不同順序,可以產生出一個新的對象,它可以產生一個非常靈活的架構,方便地擴展和維護系統。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章