publicclassDirector{ private List<String> sequence = new ArrayList<>(); private CarBuilder aBuilder = new CarABuilder(); private CarBuilder bBuilder = new CarBBuilder();
public Car getCarA(){ this.sequence.clear(); this.sequence.add("stop"); this.sequence.add("alarm"); this.sequence.add("start"); this.aBuilder.setSequence(this.sequence); returnthis.aBuilder.getCar(); }
public Car getCarB(){ this.sequence.clear(); this.sequence.add("alarm"); this.sequence.add("stop"); this.sequence.add("start"); this.bBuilder.setSequence(this.sequence); returnthis.bBuilder.getCar(); } //...其他类型(顺序)的CarA CarB
}
测试:
1 2 3 4 5 6 7
public void testBuilder(){
Director director = newDirector(); director.getCarA().run(); director.getCarB().run(); }