建造者模式
public class Build {
public static void main(String[] args) {
Product product = new Product();
Director director = new Director(product);
ProductBuild make = director.make("a", "b");
System.out.println(make);
}
}
interface ProductBuild {
void buildName(String name);
void buildCompany(String company);
ProductBuild build();
}
class Product implements ProductBuild {
private String name;
private String company;
@Override
public void buildName(String name) {
this.name = name;
}
@Override
public void buildCompany(String company) {
this.company = company;
}
@Override
public ProductBuild build() {
Product product = new Product();
product.name = this.name;
product.company = this.company;
return product;
}
@Override
public String toString() {
return "Product{" +
"name='" + name + '\'' +
", company='" + company + '\'' +
'}';
}
}
class Director {
private ProductBuild productBuild;
public ProductBuild make(String name, String company) {
productBuild.buildName(name);
productBuild.buildCompany(company);
return productBuild.build();
}
public Director(ProductBuild productBuild) {
this.productBuild = productBuild;
}
}