简单理解:指挥者、建造者、建造对象三者之间的关系

package Creating.pratice;
public class BuilderPMain {
public static void main(String[] args) {
BuilderP b = new BuilderExecutor();
Director d = new Director(b);//指挥者拥有多个建造者
ProductRoleP p = d.construct();//建造者的行为
System.out.println(p.toString());
}
}
class ProductRoleP{
private String pName;
private String pType;
public String getpName() {
return pName;
}
public void setpName(String pName) {
this.pName = pName;
}
public String getpType() {
return pType;
}
public void setpType(String pType) {
this.pType = pType;
}
@Override
public String toString() {
return "ProductRoleP [pName=" + pName + ", pType=" + pType + "]";
}
}
abstract class BuilderP{
protected ProductRoleP p = new ProductRoleP();
public abstract void builderPname();
public abstract void builderPtype();
public ProductRoleP getInstance() {
return p;
}
}
class BuilderExecutor extends BuilderP{
@Override
public void builderPname() {
System.out.println("name创建了");
p.setpName("zhangsan");
}
@Override
public void builderPtype() {
System.out.println("type创建了");
p.setpType("nan");
}
}
class Director{
private BuilderP b;
public Director(BuilderP b){
this.b = b;
}
public ProductRoleP construct(){
b.builderPname();
b.builderPtype();
return b.getInstance();
}
}