简单工厂模式


主要用于创建对象。 新加入类时。 不会影响曾经的系统代码。

核心思想是用一个工厂来依据输入的条件产生不同的类,然后依据不同类的 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

这个模式也叫静态工厂模式,由于依赖的是工厂类中的静态方法。



相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
  • 2022-12-23
  • 2021-12-08
猜你喜欢
  • 2022-01-31
  • 2022-12-23
  • 2021-10-03
  • 2021-11-29
  • 2021-11-02
相关资源
相似解决方案