/**
* 建造者
*/
public abstract class Builder {
// 地基
public abstract void buildA();
// 钢筋工程
public abstract void buildB();
// 粉刷
public abstract void buildC();
public abstract Product getProduct();
}
public class ConcreteBuilder extends Builder {
private Product product;
public ConcreteBuilder() {
this.product = new Product();
}
@Override
public void buildA() {
product.setBuildA("地基");
}
@Override
public void buildB() {
product.setBuildB("钢筋工程");
}
@Override
public void buildC() {
product.setBuildC("粉刷");
}
@Override
public Product getProduct() {
return product;
}
}
public class Product {
private String buildA;
private String buildB;
private String buildC;
public String getBuildA() {
return buildA;
}
public void setBuildA(String buildA) {
this.buildA = buildA;
}
public String getBuildB() {
return buildB;
}
public void setBuildB(String buildB) {
this.buildB = buildB;
}
public String getBuildC() {
return buildC;
}
public void setBuildC(String buildC) {
this.buildC = buildC;
}
@Override
public String toString() {
return "Product{" +
"buildA='" + buildA + '\'' +
", buildB='" + buildB + '\'' +
", buildC='" + buildC + '\'' +
'}';
}
}
/**
* 指挥者
*/
public class Director {
public Product create(Builder builder) {
builder.buildA();
builder.buildB();
builder.buildC();
return builder.getProduct();
}
}
public class TestBuilder {
public static void main(String[] args) {
Director director = new Director();
Product product = director.create(new ConcreteBuilder());
System.out.println(product); // Product{buildA='地基', buildB='钢筋工程', buildC='粉刷'}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix