1700457390
}
1700457391
1700457392
具体的产品类可以有多个,都继承于抽象产品类,其源代码如代码清单8-9所示。
1700457393
1700457394
代码清单8-9 具体产品类
1700457395
1700457396
public class ConcreteProduct1 extends Product{
1700457397
1700457398
public void method2(){
1700457399
1700457400
//业务逻辑处理
1700457401
1700457402
}
1700457403
1700457404
}
1700457405
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
[
上一页 ]
[ :1.70045739e+09 ]
[
下一页 ]