打字猴:1.70045821e+09
1700458210 }
1700458211
1700458212 }
1700458213
1700458214 产品B与此类似,不再赘述。抽象工厂类AbstractCreator的职责是定义每个工厂要实现的功能,在通用代码中,抽象工厂类定义了两个产品族的产品创建,如代码清单9-14所示。
1700458215
1700458216 代码清单9-14 抽象工厂类
1700458217
1700458218 public abstract class AbstractCreator{
1700458219
1700458220 //创建A产品家族
1700458221
1700458222 public abstract AbstractProductA createProductA();
1700458223
1700458224 //创建B产品家族
1700458225
1700458226 public abstract AbstractProductB createProductB();
1700458227
1700458228 }
1700458229
1700458230 注意 有N个产品族,在抽象工厂类中就应该有N个创建方法。
1700458231
1700458232 如何创建一个产品,则是由具体的实现类来完成的,Creator1和Creator2如代码清单9-15和代码清单9-16所示。
1700458233
1700458234 代码清单9-15 产品等级1的实现类
1700458235
1700458236 public class Creator1 extends AbstractCreator{
1700458237
1700458238 //只生产产品等级为1的A产品
1700458239
1700458240 public AbstractProductA createProductA(){
1700458241
1700458242 return new ProductA1();
1700458243
1700458244 }
1700458245
1700458246 //只生产产品等级为1的B产品
1700458247
1700458248 public AbstractProductB createProductB(){
1700458249
1700458250 return new ProductB1();
1700458251
1700458252 }
1700458253
1700458254 }
1700458255
1700458256 代码清单9-16 产品等级2的实现类
1700458257
1700458258 public class Creator2 extends AbstractCreator{
1700458259
[ 上一页 ]  [ :1.70045821e+09 ]  [ 下一页 ]