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
1700458260
//只生产产品等级为2的A产品
1700458261
1700458262
public AbstractProductA createProductA(){
1700458263
1700458264
return new ProductA2();
1700458265
1700458266
}
1700458267
1700458268
//只生产产品等级为2的B产品
1700458269
[
上一页 ]
[ :1.70045822e+09 ]
[
下一页 ]