建造者模式
程序员文章站
2022-07-10 19:12:33
建造者模式创建模式,将产品的内部表象和产品的生产过程分割开来...
建造者模式
创建模式,将产品的内部表象和产品的生产过程分割开来
建造模式结构
抽象建造者(Builder)给出一个抽象接口,规范对象的各个组成成分,如电脑,需要cpu,硬盘等
具体建造者:实现抽象建造者声明的接口,提*品的实例
产品:比如构建好的电脑是一个产品,一个系统可以生产多个产品,产品之间可以互不关联
导演者:调用具体建造者以创建对象
具体建造者:调用创建产品的实例
导演者负责和客户端打交道,将客户的需求划分为对各个零件的建造请求,再委派给具体建造者
一般一个产品类就拥有一个具体的建造者
使用场景举例:工厂:生产电脑
顾客:说出想要电脑型号,配置,然后找到director(经理)购买即可,不需要了解具体组装
public class Client {
public static void main(String[] args) {
Builder builder=new SpecificalBuilder();
Director director = new Director(builder);
director.print_information();
Product product = builder.retriveresult();
product.getPart1();
product.getPart2();
System.out.println("组装成功");
}
}
public class Director {
private Builder builder=null;
public Director(Builder builder){
this.builder=builder;
}
public void print_information(){
builder.bulidPart1();
builder.bulidPart2();
}
}
abstract class Builder {
abstract void bulidPart1();
abstract void bulidPart2();
abstract Product retriveresult() ;
}
public class SpecificalBuilder extends Builder {
private Product product=new Product();
@Override
void bulidPart1() {
product.setPart1("CPU");
System.out.println("CPU正在组装。。。");
}
@Override
void bulidPart2() {
product.setPart2("Mainboard");
System.out.println("Mainboard正在组装。。。");
}
@Override
Product retriveresult() {
return product;
}
}
public class Product {
private String part1;
private String part2;
public String getPart1() {
System.out.println(part1+"组装完毕");
return part1;
}
public void setPart1(String part1) {
this.part1 = part1;
}
public String getPart2() {
System.out.println(part2+"组装完毕");
return part2;
}
public void setPart2(String part2) {
this.part2 = part2;
}
}
本文地址:https://blog.csdn.net/qq_26022589/article/details/107467826
上一篇: ServletContext域