1700457406
public class ConcreteProduct2 extends Product{
1700457407
1700457408
public void method2(){
1700457409
1700457410
//业务逻辑处理
1700457411
1700457412
}
1700457413
1700457414
}
1700457415
1700457416
抽象工厂类负责定义产品对象的产生,源代码如代码清单8-10所示。
1700457417
1700457418
代码清单8-10 抽象工厂类
1700457419
1700457420
public abstract class Creator{
1700457421
1700457422
/*
1700457423
1700457424
*创建一个产品对象,其输入参数类型可以自行设置
1700457425
1700457426
*通常为String、Enum、Class等,当然也可以为空
1700457427
1700457428
*/
1700457429
1700457430
public abstract<T extends Product>T createProduct(Class<T>c);
1700457431
1700457432
}
1700457433
1700457434
具体如何产生一个产品的对象,是由具体的工厂类实现的,如代码清单8-11所示。
1700457435
1700457436
代码清单8-11 具体工厂类
1700457437
1700457438
public class ConcreteCreator extends Creator{
1700457439
1700457440
public<T extends Product>T createProduct(Class<T>c){
1700457441
1700457442
Product product=null;
1700457443
1700457444
try{
1700457445
1700457446
product=(Product)Class.forName(c.getName()).newInstance();
1700457447
1700457448
}catch(Exception e){
1700457449
1700457450
//异常处理
1700457451
1700457452
}
1700457453
1700457454
return(T)product;
1700457455
[
上一页 ]
[ :1.700457406e+09 ]
[
下一页 ]