工厂模式的C++、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的相似,不再列出。

4、点击下载源码

原文地址:https://www.cnblogs.com/minbaba/p/6362710.html