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的相似,不再列出。