打字猴:1.700458282e+09
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
1700458300 AbstractProductA a2=creator2.createProductA();
1700458301
1700458302 //产生B1对象
1700458303
1700458304 AbstractProductB b1=creator1.createProductB();
1700458305
1700458306 //产生B2对象
1700458307
1700458308 AbstractProductB b2=creator2.createProductB();
1700458309
1700458310 /*
1700458311
1700458312 *然后在这里就可以为所欲为了……
1700458313
1700458314 */
1700458315
1700458316 }
1700458317
1700458318 }
1700458319
1700458320 在场景类中,没有任何一个方法与实现类有关系,对于一个产品来说,我们只要知道它的工厂方法就可以直接产生一个产品对象,无需关心它的实现类。
1700458321
1700458322
1700458323
1700458324
1700458325 设计模式之禅 [:1700453947]
1700458326 设计模式之禅 9.3 抽象工厂模式的应用
1700458327
1700458328 9.3.1 抽象工厂模式的优点
1700458329
1700458330 ❑封装性,每个产品的实现类不是高层模块要关心的,它要关心的是什么?是接口,是抽象,它不关心对象是如何创建出来,这由谁负责呢?工厂类,只要知道工厂类是谁,我就能创建出一个需要的对象,省时省力,优秀设计就应该如此。
1700458331
[ 上一页 ]  [ :1.700458282e+09 ]  [ 下一页 ]