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
1700458270
public AbstractProductB createProductB(){
1700458271
1700458272
return new ProductB2();
1700458273
1700458274
}
1700458275
1700458276
}
1700458277
1700458278
注意 有M个产品等级就应该有M个实现工厂类,在每个实现工厂中,实现不同产品族的生产任务。
1700458279
1700458280
在具体的业务中如何产生一个与实现无关的对象呢?如代码清单9-17所示。
1700458281
1700458282
代码清单9-17 场景类
1700458283
1700458284
public class Client{
1700458285
1700458286
public static void main(String[]args){
1700458287
1700458288
//定义出两个工厂
1700458289
1700458290
AbstractCreator creator1=new Creator1();
1700458291
1700458292
AbstractCreator creator2=new Creator2();
1700458293
1700458294
//产生A1对象
1700458295
1700458296
AbstractProductA a1=creator1.createProductA();
1700458297
1700458298
//产生A2对象
1700458299
[
上一页 ]
[ :1.70045825e+09 ]
[
下一页 ]