构建者模式-第二种方式

/**
* 建造者
*/
public abstract class Builder {
public abstract Builder buildA(String s);
public abstract Builder buildB(String s);
public abstract Builder buildC(String s);
public abstract Product build();
}

public class ConcreteBuilder extends Builder {
private Product product;
public ConcreteBuilder() {
product = new Product();
}
@Override
public Builder buildA(String s) {
product.setBuildA(s);
return this;
}
@Override
public Builder buildB(String s) {
product.setBuildB(s);
return this;
}
@Override
public Builder buildC(String s) {
product.setBuildC(s);
return this;
}
@Override
public Product build() {
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 "Product2{" +
"buildA='" + buildA + '\'' +
", buildB='" + buildB + '\'' +
", buildC='" + buildC + '\'' +
'}';
}
}

public class TestProduct {
public static void main(String[] args) {
ConcreteBuilder concreteBuilder = new ConcreteBuilder();
Product build = concreteBuilder.buildA("aa").buildB("bb").buildC("cc").build();
// Product{buildA='aa', buildB='bb', buildC='cc'}
System.out.println(build);
}
}

posted @   剑阁丶神灯  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示