package Builder;
import java.util.ArrayList;
public abstract class AbstractProduct {
//记录执行顺序
private ArrayList<String> part = new ArrayList<String>();
public abstract void doSomething();
public abstract void doOtherthing();
//final,子类不可重写
final public void executive(){
for(int i=0;i<this.part.size();i++){
String actionName = this.part.get(i);
if(actionName.equals("doSomething")){
this.doSomething();
}
else if(actionName.equals("doOtherthing")){
this.doOtherthing();
}
}
}
//final,子类不可重写
final public void setPart(ArrayList<String> part){
this.part = part;
}
}
package Builder;
public class Product extends AbstractProduct{
//子类具体描述步骤
public void doSomething(){
System.out.println("will do something...");
}
public void doOtherthing() {
System.out.println("Something has done.Otherthing will be done...");
}
}
package Builder;
import java.util.ArrayList;
public abstract class Builder {
//设置产品的不同部分,以获得不同的产品
public abstract void setPart(ArrayList<String> part);
//建造产品
public abstract Product buildProduct();
}
package Builder;
import java.util.ArrayList;
public class ConcreteProduct extends Builder{
private Product product = new Product();
public void setPart(ArrayList<String> part) {
this.product.setPart(part);
}
public Product buildProduct() {
return this.product;
}
}
package Builder;
import java.util.ArrayList;
//对不同产品的生产顺序再封装,对高层屏蔽细节
public class Director {
private ArrayList<String> part = new ArrayList<String>();
private Builder builder = new ConcreteProduct();
public Product getAProduct() {
this.part.clear();
this.part.add("doSomething");
this.part.add("doOtherthing");
builder.setPart(part);
return builder.buildProduct();
}
}
package Builder;
public class Client {
public static void main(String[] args) {
Director director = new Director();
System.out.println("将产生10个产品");
for(int i=1;i<11;i++){
System.out.println("第" + i + "个产品");
director.getAProduct().executive();
System.out.println();
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有