C++ 建造者模式实现
时间: 2023-11-14 15:58:00 浏览: 104
建造者模式c++实现
5星 · 资源好评率100%
建造者模式是一种创建型设计模式,它允许逐步创建复杂对象,同时使得创建过程更加灵活。在 C++ 中,可以使用类和对象来实现建造者模式。
以下是一个使用 C++ 实现建造者模式的示例:
首先,我们需要定义一个产品类,该类包含了需要创建的对象的属性:
```cpp
class Product {
public:
void setPartA(const std::string& partA) {
this->partA = partA;
}
void setPartB(const std::string& partB) {
this->partB = partB;
}
void setPartC(const std::string& partC) {
this->partC = partC;
}
std::string getInfo() const {
return "Part A: " + partA + ", Part B: " + partB + ", Part C: " + partC;
}
private:
std::string partA;
std::string partB;
std::string partC;
};
```
接下来,我们需要定义一个抽象建造者类,该类定义了创建产品所需的所有方法:
```cpp
class Builder {
public:
virtual void buildPartA() = 0;
virtual void buildPartB() = 0;
virtual void buildPartC() = 0;
virtual Product* getResult() = 0;
};
```
然后,我们可以定义具体的建造者类,该类实现了抽象建造者类中定义的所有方法,并负责创建具体的产品对象:
```cpp
class ConcreteBuilder : public Builder {
public:
ConcreteBuilder() {
product = new Product();
}
void buildPartA() override {
product->setPartA("Part A");
}
void buildPartB() override {
product->setPartB("Part B");
}
void buildPartC() override {
product->setPartC("Part C");
}
Product* getResult() override {
return product;
}
private:
Product* product;
};
```
最后,我们需要定义一个指挥者类,该类负责使用建造者对象来构建具体的产品:
```cpp
class Director {
public:
void construct(Builder* builder) {
builder->buildPartA();
builder->buildPartB();
builder->buildPartC();
}
};
```
现在,我们可以使用建造者模式来创建具体的产品对象:
```cpp
int main() {
Director director;
ConcreteBuilder builder;
director.construct(&builder);
Product* product = builder.getResult();
std::cout << product->getInfo() << std::endl;
return 0;
}
```
输出结果为:
```
Part A: Part A, Part B: Part B, Part C: Part C
```
这就是一个简单的 C++ 建造者模式的实现。
阅读全文