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 ]
[
下一页 ]