简单工厂模式
主要用于创建对象。 新加入类时。 不会影响曾经的系统代码。
核心思想是用一个工厂来依据输入的条件产生不同的类,然后依据不同类的 virtual 函数得到不同的结果.
以下以苹果手机的生产为例。模拟手机生产工厂。
苹果手机有各种不同的型号,有Iphone4、Iphone4s、Iphone5等等。
我们通过一个工厂来生产,client依据客户的需求生产不同型号的手机。
代码例如以下:
Apple.h
#pragma once #include <iostream> class Apple { public: Apple(); virtual ~Apple(); virtual void ShowVersion() = 0; virtual void MakeCall(const std::string &num) = 0; };
Apple.cpp
Apple4.h
#pragma once #include "Apple.h" class Apple4 : public Apple { public: Apple4(); ~Apple4(); virtual void ShowVersion(); virtual void MakeCall(const std::string &num); };Apple4.cpp
Apple4s.h
#pragma once #include "Apple.h" class Apple4s : public Apple { public: Apple4s(); ~Apple4s(); virtual void ShowVersion(); virtual void MakeCall(const std::string &num); };Apple4s.cpp
AppleFactory.h
#pragma once #include "Apple.h" #include <string> class AppleFactory { public: AppleFactory(); ~AppleFactory(); static Apple * MakePhone(const std::string &version);//声明为静态成员函数 };AppleFactory.cpp
main.cpp这个模式也叫静态工厂模式,由于依赖的是工厂类中的静态方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:设计模式C++实现_2_简单工厂模式 - Python技术站