关于官方网站建设情况的汇报,哪做网站好,cms是什么意思的缩写,龙岩天宫山有几个台阶文章目录 [toc]建造者模式#xff08;Builder Pattern#xff09;工作原理一、基本概念二、主要角色三、工作流程#xff08;一#xff09;定义产品#xff08;二#xff09;定义抽象建造者#xff08;三#xff09;定义具体建造者#xff08;四#xff09;定义指挥者… 文章目录 [toc]建造者模式Builder Pattern工作原理一、基本概念二、主要角色三、工作流程一定义产品二定义抽象建造者三定义具体建造者四定义指挥者五使用建造者模式
建造者模式Builder Pattern工作原理
一、基本概念
建造者模式是一种创建对象的设计模式将复杂对象的构建与它的表示分离使得同样的构建过程可以创建不同的产品对象。
二、主要角色
产品Product要创建的复杂对象。抽象建造者Builder定义了创建产品各个部件的抽象方法。具体建造者Concrete Builder实现了抽象建造者的抽象方法负责构建产品的各个部件并负责组装产品。指挥者Director负责按照一定的顺序调用建造者的方法来构建产品。
三、工作流程
一定义产品
首先定义产品类描述产品的组成和功能。
class Product {private String part1;private String part2;// 省略构造函数、getter 和 setter 方法
}二定义抽象建造者
创建抽象建造者类声明构建产品各个部件的抽象方法。
abstract class Builder {abstract void buildPart1();abstract void buildPart2();abstract Product getProduct();
}三定义具体建造者
实现抽象建造者类具体实现构建产品各个部件的方法并负责组装产品。
class ConcreteBuilder extends Builder {private Product product new Product();Overridevoid buildPart1() {product.setPart1(Part 1 of Concrete Product);}Overridevoid buildPart2() {product.setPart2(Part 2 of Concrete Product);}OverrideProduct getProduct() {return product;}
}四定义指挥者
创建指挥者类用于控制产品的构建过程。
class Director {Builder builder;Director(Builder builder) {this.builder builder;}void construct() {builder.buildPart1();builder.buildPart2();}
}五使用建造者模式
在客户端代码中创建具体建造者对象和指挥者对象通过指挥者控制构建过程获取最终的产品对象。
public class Client {public static void main(String[] args) {Builder builder new ConcreteBuilder();Director director new Director(builder);director.construct();Product product builder.getProduct();}
}