行业知识
【设计模式 04】建造者模式
2026-11-15 19:06:31
来源:互联网转载
如���要构建的对象很复杂,那么可以将整个构建过程拆分成多个步骤,并为每一个步骤定义一个抽象的接口。并添加一个指导者用来控制构建产品的顺序和步骤。
Java实现:
// 产品类class Product { private String part1; private String part2; public void setPart1(String part1) { this.part1 = part1; } public void setPar2(String part2) { this.part2 = part2; } // 其他属性和方法}// 抽象建造者接口interface Builder { void buildPart1(String part1); void buildPart2(String part2); Product getResult();}// 具体建造者类class ConcreteBuilder implements Builder { private Product product = new Product(); @Override public void buildPart1(String part1) { product.setPart1(part1); } @Override public void buildPart2(String part2) { product.setPart2(part2); } @Override public Product getResult() { return product; }}// 指导者类class Director { private Builder builder; public Director(Builder builder) { this.builder = builder; } // 调用方法构建产品 public void construct() { builder.buildPart1("Part 1"); builder.buildPart2("Part 2"); }}public class Main { public static void main(String[] args) { // 创建指导者和建造者对象 Builder builder = new ConcreteBuilder(); Director director = new Director(builder); // 指导者构建产品 director.construct(); // 获取构建好的产品 Product product = builder.getResult(); // 输出产品信息 System.out.println(product); }} 【设计模式专题之建造者模式】4. 自行车加工
CPP版题解:
#include #include using namespace std;class Bike {public: string frame; string tires; void setFrame(const string& frame) { this->frame = frame; } void setTires(const string& tires) { this->tires = tires; } friend ostream& operator bikeType; BikeBuilder* builder; if (bikeType == "mountain") { builder = new MountainBikeBuilder(); } else { builder = new RoadBikeBuilder(); } Bike bike = director.construct(*builder); cout
上一篇:腾讯服务器哪里找代理?