打字猴:1.700457406e+09
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 ]  [ 下一页 ]