1700458199
1700458200
}
1700458201
1700458202
代码清单9-13 产品A2的实现类
1700458203
1700458204
public class ProductA2 extends AbstractProductA{
1700458205
1700458206
public void doSomething(){
1700458207
1700458208
System.out.println(“产品A2的实现方法”);
1700458209
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(){
[
上一页 ]
[ :1.700458199e+09 ]
[
下一页 ]