建造者模式
动机
- 将一个复杂对象的创建过程及其表示分离,同一个创建过程可以创建不同的表示
- 当需要创建一个包含多个部分或配置选项的复杂对象,并且需要将构建过程与表示分离时,建造者模式很有用
- 帮助你灵活地构建不同配置的对象,同时保持构建过程的清晰性和可维护性
经典Builder模式
以一个构建 computer 类的过程为例。我们可能需要构造不同参数的 computer 。这时候我们就可以通过不同的 computerBuilder 类来实现,这些bulder类都继承于一个 computerBuilder 虚基类,其中定义了一些模板方法
class Computer { // 我们要创建的
public:
void setCPU(string);
void setMemory(string);
void setStorage(string);
private:
string m_CPU;
string m_memory;
string m_storge;
};
class ComputerBuilder { // builder的虚基类
public:
virtual void CreateCPU() = 0;
virtual void CreateMemory() = 0;
virtual void CreateStorage() = 0;
virtual Computer CreateComputer() = 0;
};