具体的产品:
//具体的产品
public class Product {
//有ABCD多个部件
private String buildA;
private String buildB;
private String buildC;
private String buildD;
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;
}
public String getBuildD() {
return buildD;
}
public void setBuildD(String buildD) {
this.buildD = buildD;
}
@Override
public String toString() {
return "Product{" +
"buildA='" + buildA + '\'' +
", buildB='" + buildB + '\'' +
", buildC='" + buildC + '\'' +
", buildD='" + buildD + '\'' +
'}';
}
}
和指挥者结合后的抽象建造者:
//改造后的抽象建造者
public abstract class NewBuilder {
protected static Product product = new Product();
//具体产品的各个子部件的抽象方法
abstract void buildA();//部件A
abstract void buildB();//部件B
abstract void buildC();//部件C
abstract void buildD();//部件B
//返回具体产品的方法
abstract Product getProduct();
//把导演类中的construct()方法合并到抽象建造者类中
public static Product construct(NewBuilder newBuilder){
newBuilder.buildA();
newBuilder.buildB();
newBuilder.buildC();
newBuilder.buildD();
return product;
}
}
具体建造者:
//具体建造者,实现抽象建造者,完成复杂产品的各个部件的具体创建方法
public class Worker extends Builder{
private Product product; //提升作用域
//通过具体建造者的构造器生成具体产品的对象
public Worker(){
product = new Product();
}
@Override
void buildA() {
product.setBuildA("完成部件A");
System.out.println("完成部件A");
}
@Override
void buildB() {
product.setBuildB("完成部件B");
System.out.println("完成部件B");
}
@Override
void buildC() {
product.setBuildC("完成部件C");
System.out.println("完成部件C");
}
@Override
void buildD() {
product.setBuildD("完成部件D");
System.out.println("完成部件D");
}
@Override
Product getProduct() {
System.out.println("完成产品ABCD的创建");
return product;
}
}
客户端:求大佬指点下面该怎么实现
public class NewClient {
public static void main(String[] args) {
}
}