简单工厂模式的C++、Java实现
1、简单工厂模式UML
UML如下:
图1. 简单工厂模式UML
2、C++实现
类视图如下:
图2. C++实现简单工厂模式类视图
其中,SimpleFactory实现为:
1 Product * SimpleFactory::Create(std::string pStr) { 2 3 if ("ConcreteProductA" == pStr) { 4 ConcreteProductA * cpa = new ConcreteProductA();
5 return cpa; 6 } 7 else if ("ConcreteProductB" == pStr) { 8 ConcreteProductB * cpb = new ConcreteProductB();
9 return cpb; 10 } 11 else { 12 return nullptr; 13 }//end if else 14 15 }//end method Create
3、Java实现
类视图为:
图3. Java实现简单工厂模式类视图
其中,SimpleFactory实现为:
1 /*简单工厂类*/ 2 public class SimpleFactory { 3 4 //简单工厂方法。 5 public static Product Create(String pString) { 6 if (pString.equals("ConcreteProductA")) { 7 return new ConcreteProductA(); 8 } else if (pString.equals("ConcreteProductB")) { 9 return new ConcreteProductB(); 10 } else { 11 return null; 12 }//end if else 13 14 }//end method Create 15 16 }//end class SimpleFactory