做软装素材从哪些网站找,网站用户账号ip查询,嵌入式软件开发工程师是做什么的,南宁学网站建设建造者模式是一种创建型设计模式, 旨在将复杂对象的构建过程与其表示分离, 使同样的构建过程可以构建不同的表示. 建造者模式主要用于以下情况:
需要创建的对象非常复杂: 这个对象由多个部分组成, 且这些部分需要一步步地构建不同的表示: 通过相同的构建过程可以生成不同的表示…建造者模式是一种创建型设计模式, 旨在将复杂对象的构建过程与其表示分离, 使同样的构建过程可以构建不同的表示. 建造者模式主要用于以下情况:
需要创建的对象非常复杂: 这个对象由多个部分组成, 且这些部分需要一步步地构建不同的表示: 通过相同的构建过程可以生成不同的表示构建过程的控制: 希望能够有更多的控制, 逐步创建对象, 而不是在一个步骤中完成
建造者模式结构
抽象建造者: 定义了创建产品的各部件的抽象接口具体建造者: 实现了建造者接口, 构建并装配各个部件, 最终生成具体的产品产品: 具体要创建的复杂对象指挥者: 负责安排已有模块的顺序构建一个复杂的对象
建造者模式实现
// 产品类
public class Product {private String partA;private String partB;private String partC;public void setPartA(String partA) {this.partA partA;}public void setPartB(String partB) {this.partB partB;}public void setPartC(String partC) {this.partC partC;}Overridepublic String toString() {return Product [partA partA , partB partB ,partC partC ];}
}// 抽象建造者
public abstract class Builder {protected Product product new Product();public abstract void buildPartA();public abstract void buildPartB();public abstract void buildPartC();public Product getResult() {return product;}
}// 具体建造者
public class ConcreteBuilder extends Builder {Overridepublic void buildPartA() {product.setPartA(Part A);}Overridepublic void buildPartB() {product.setPartA(Part B);}Overridepublic void buildPartC() {product.setPartA(Part C);}
}// 指挥者
public class Director {private Builder builder;public Director(Builder builder) {this.builder builder}public void construct() {builder.buildPartA();builder.buildPartB();builder.buildPartC();}
}优点:
易于拓展: 通过创建新的具体建造者, 可以很容易地增加新的产品表示细粒度控制: 可以一步步地构建对象, 细化对象的创建流程封装性: 将复杂对象的创建封装在建造者中, 客户端无需了解细节
缺点:
更多的代码量: 为了实现建造者模式, 需要更多的类和接口, 增加了代码量复杂性: 对于简单的对象创建, 建造者模式过于复杂了