代码 5 DirectorImpl.java:
package com.model.BuilderFactory; import java.util.List; /* * 具体导演类 */ public class DirectorImpl extends Director { /* * 构造方法 */ public DirectorImpl(Builder builder){ super(builder); } /* * 重写父类的构建方法 * @see com.model.BuilderFactory.Director#construct() */ @Override public List construct() { /* * 初始化创建对象 */ getBuilder().init(); /* * 创建过程 */ getBuilder().createFoodA(); getBuilder().createFoodB(); getBuilder().createDrink(); getBuilder().createAddition(); /* * 得到产品 */ return getBuilder().getProductList(); } }
代码 6 Client.java:
package com.model.BuilderFactory; import java.util.List; /* * 客户端代码 */ public class Client { public static void main(String[] args) { /* * 声明一个导演变量 */ Director director; /** * 构建儿童套餐的过程 * 创建导演,传入特定的建造对象 */ director = new DirectorImpl(new BuilderImplA()); /* * 构造 */ List aList = director.construct(); /* * 显示结果 */ Client.viewList(aList); /* * 构建成人套餐的过程 * 创建导演,传入特定的建造对象 */ director = new DirectorImpl(new BuilderImplB()); /* * 构造 */ List bList = director.construct(); /* * 显示结果 */ Client.viewList(bList); } /* * 打印列表信息的工具方法 */ public static void viewList(List list){ for(Object obj : list){ System.out.print(obj + " "); } System.out.println(); } } |