基础理解
Q:为什么要用简单工厂 ?
A: 假设有一个卡车类,有 订单管理 、货物追踪 、费用计算 等等类 而且 十分依赖卡车类的数据结构,或直接调用其方法类,那么如果再想加入一个轮船类使用这些就会变得十分困难。
为了降低这种耦合,需要创建一个中间工厂类。所有产品(卡车类,轮船类)送进去加工,直接调用工厂类中产品的方法(订单管理,货物追踪这些方法)
注意点:
- 让所有产品都遵循同一接口。 该接口必须声明对所有产品都有用的方法。
- 适用于创建单个对象。其下没有包含更详细的种类
- 工厂里面要有清晰的对象创建方式,方便创建
UML 图
样例代码
#include <iostream>
/**
* Product 接口声明了所有具体产品必须实现的操作。
*/
class Logistics
{
public:
virtual ~Product() {
}
virtual std::string Operation() const = 0;
virtual std::string Calculate_Price() const = 0; // 添加 Calculate_Price 方法
};
/**
* 具体产品提供 Logistics 接口的各种实现。
*/
class RoadLogistics : public Logistics