//这是将三小的部件组建成宇宙飞船
public interface AirShipDirector {
AirShip directAirShip();
}
//这是一个实现类
public class LgAirShipBuilder implements AirShipBuilder {
@Override
public OrbitalMoudle OrbitalMoudleBuilder() {
// TODO Auto-generated method stub
System.out.println("构造李果牌轨道舱");
return new OrbitalMoudle("李果牌轨道舱");
}
@Override
public Engine EngineBuilder() {
// TODO Auto-generated method stub
System.out.println("构造李果牌发动机");
return new Engine("李果牌发动机");
}
@Override
public EscapeTower EscapeTowerBuilder() {
// TODO Auto-generated method stub
System.out.println("构造李果牌逃逸塔");
return new EscapeTower("李果牌逃逸塔");
}
}
//在这里我们创造了飞船以后,我们就可以定义操作飞船的方法。
//这也是一个实现类。
public class LgAirShipDirector implements AirShipDirector{
private AirShipBuilder builder;
public LgAirShipDirector(AirShipBuilder builder) {
super();
this.builder = builder;
}
public LgAirShipDirector() {
super();
// TODO Auto-generated constructor stub
}
@Override
public AirShip directAirShip() {
// TODO Auto-generated method stub
Engine engine=builder.EngineBuilder();
OrbitalMoudle orbitalMoudle=builder.OrbitalMoudleBuilder();
EscapeTower escapeTower=builder.EscapeTowerBuilder();
AirShip airShip=new AirShip();
airShip.setEngine(engine);
airShip.setEscapeTower(escapeTower);
airShip.setOritalMoudle(orbitalMoudle);
return airShip;
}
public void launch(){
System.out.println("发射");
}
}
//这是一个调用的客户端
public class Client {
public static void main(String[] args){
LgAirShipDirector director=new LgAirShipDirector(new LgAirShipBuilder());
AirShip ship=director.directAirShip();
String name= ship.getEngine().getName();
System.out.println(name);
director.launch();
}
}