Mar 25 2008

Abstract Factory:物件家族的抽象工廠

Abstract Factory UML本篇文章將承續前篇「Factory Method:工廠化的物件生產方法」,介紹經常與 Factory Method 模式搭配使用的 Abstract Factory 設計模式,以及 Abstract Factory 模式於遊戲程式中的應用實例。

在複雜的軟體系統架構中,將原來雜亂無章的組件加以分門別類,然後從中取出性質相似與功能相近的物件,使其集中群聚,就能夠大幅地簡化程式系統組件的複雜度。而 Abstract Factory 模式,正是用來協助程式設計者將物件分門別類與集中管理的好方法。

Abstract Factory 的「工廠」,與 Factory Method 的「工廠」目的相同,同樣屬於「生成模式」的分類,都是用來產生出物件成品的製造者。對於設計模式的入門者來說,很容易將 Factory Method 模式與 Abstract Factory 模式兩者的使用目的以及使用時機搞混;雖然都是屬於工廠類型的作業模式,然而 Abstract Factory 與 Factory Method 的不同之處在於,抽象工廠模式是將一組性質相關或相依的物件,放在同一個工廠裡生產。例如對於食品工廠來說,能夠生產的包含飲料、零食與泡麵三項食品類的產品;而皮件工廠,則能夠生產出皮包、皮帶與皮鞋等皮製產品。也就是在一個工廠之內有數個不同的生產線,能夠同時進行不同成品的生產作業。在實際程式系統的應用中,可以說 Abstract Factory 經常是一堆 Factory Method 的組合

繼續閱讀 << "Abstract Factory:物件家族的抽象工廠"


Mar 15 2008

Factory Method:工廠化的物件生產方法

Factory Method UML 本篇文章將介紹在軟體設計模式 (Design Patterns) 中相當著名而且受到廣泛使用的 Factory Method 模式,以及 Factory Method 在遊戲程式設計難題中的實際應用。

想要熟悉 Factory Method 設計模式,首先要瞭解下列幾項問題:

  • 這個設計模式的目的是什麼?
  • 這個設計模式能夠用來解決什麼樣的問題?
  • 這個設計模式要如何應用在遊戲程式之中?

或許對於程式設計者來說,十個人之中有九個半討厭聽到「工廠」或「工廠化管理」的相關術語,但是在軟體設計模式的領域中,工廠化的生產作業方式反而是相當實際而且管用的方法。Factory Method 是軟體領域中,非常基礎同時也非常重要的設計模式之一,或許你從來沒有在書本中學習過相關的知識,但是已經在撰寫程式的經驗過程中,處處使用著這樣的設計方法而不自知。如果能夠進一步瞭解這些前人思維架構的心血結晶,將有助於改善現有的程式架構,並且提升未來撰寫程式系統架構的能力。

繼續閱讀 << "Factory Method:工廠化的物件生產方法"