package builder;
/**
* 建造者接口,用于定义建造者要实现的公共方法(也可以不使用接口用抽象类甚至是普通类代替)
* @author Administrator
*
*/
public interface Builder {
/**
* 建造
*/
public void addBuild(String thing);
/**
* 成果
*/
public void getResult();
}
package builder;
import java.util.List;
public class RealBuilder implements Builder {
public Project pro;
/**
* 构造方法注入产品
* @param pro
*/
public RealBuilder(Project pro){
this.pro=pro;
}
@Override
public void addBuild(String thing) {
pro.addThing(thing);
}
@Override
public void getResult() {
List<String> reslist = pro.getResList();
if(null!=reslist){
for(String res:reslist){
System.out.println(res);
}
}
}
}
package builder;
import java.util.ArrayList;
import java.util.List;
/**
* 建造产品
* @author Administrator
*
*/
public class Project {
/**
* 部件列表
*/
public List<String> resList=new ArrayList<String>();
public List<String> getResList() {
return resList;
}
/**
* 新增部件
* @param thing
*/
public void addThing(String thing){
resList.add(thing);
}
}
package builder;
public class BuilderMain {
public static void main(String[] args) {
Project pro = new Project();
RealBuilder builder = new RealBuilder(pro);
builder.addBuild("A");
builder.addBuild("B");
builder.addBuild("C");
builder.addBuild("D");
builder.getResult();
}
}