1、工廠模式UML 圖1. 工廠模式UML 2、C++實現 類視圖如下: 圖2. 工廠模式C++實現的類圖 其中,Factory實現為: ConcreteFactoryA實現為: ConcreteFactoryB的代碼與ConcreteFactoryA的代碼相似,不再列出。 3、Java實現 類視圖 ...
1、工廠模式UML
圖1. 工廠模式UML
2、C++實現
類視圖如下:
圖2. 工廠模式C++實現的類圖
其中,Factory實現為:
1 //工廠類。 2 class Factory 3 { 4 public: 5 Factory(); 6 ~Factory(); 7 8 //工廠方法。 9 virtual Product * Create() = 0; 10 };
ConcreteFactoryA實現為:
1 //類聲明: 2 class ConcreteFactoryA : 3 public Factory 4 { 5 public: 6 ConcreteFactoryA(); 7 ~ConcreteFactoryA(); 8 9 Product * Create(); 10 }; 11 12 //類方法定義 13 Product * ConcreteFactoryA::Create() { 14 ConcreteProductA * cpa = new ConcreteProductA(); 15 16 return cpa; 17 }//end method Create
ConcreteFactoryB的代碼與ConcreteFactoryA的代碼相似,不再列出。
3、Java實現
類視圖如下:
圖3. 工廠模式Java實現的類視圖
其中,Factory實現代碼是:
1 //抽象工廠類。 2 public interface Factory { 3 4 //抽象工廠方法。 5 public Product Create(); 6 }//end interface Factory
ConcreteFactoryA的實現代碼是:
1 //具體工廠類,用於創建ConcreteProductA的對象。 2 public class ConcreteFactoryA implements Factory { 3 4 @Override 5 public Product Create() { 6 // TODO Auto-generated method stub 7 return new ConcreteProductA(); 8 }//end method Create 9 10 }//end class ConcreteFactoryA
ConcreteFactoryB的代碼與ConcreteFactoryA的相似,不再列出。