1 将相同的操作向上集中到抽象类和接口中,引入一个指挥类来控制实现类中各部分中方法的执行,如下Demo,创建一个人可以创造高矮胖瘦,对应不同的实现类,但是创建的一个人每一个操作是必须存在的,执行的顺序也是相同的,所以引入一个指挥类,添加一个引用来指向具体想实现的类,创建工作交给该操作类来完成即可,与工厂模式不同的是每一个操作的执行均交给了一个指挥类。代码如下:
定义一个接口,声明创建一个类的必要操作:
public interface PersonBuilderInterface {
public void buildHead();
public void buildBody();
}
两个实现类:
public class PersonBuilderThin implements PersonBuilderInterface{
@Override
public void buildHead() {
// TODO Auto-generated method stub
System.out.println("创建一个大头");
}
@Override
public void buildBody() {
// TODO Auto-generated method stub
System.out.println("创建一个大身体");
}
}
public class PersonBuilderFat implements PersonBuilderInterface{
@Override
public void buildHead() {
// TODO Auto-generated method stub
System.out.println("创建一个小头");
}
@Override
public void buildBody() {
// TODO Auto-generated method stub
System.out.println("创建一个小身体");
}
}
指挥类:
public class PersonBuilderDirector {
PersonBuilderInterface builder;
public PersonBuilderDirector(PersonBuilderInterface builder) {
this.builder = builder;
}
public void CreatePerson(){
if(builder!=null){
builder.buildHead();
builder.buildBody();
}
}
}
参考《大话设计模式》