打字猴:1.700476715e+09
1700476715
1700476716 System.out.println(“A、找到奔驰车工厂”);
1700476717
1700476718 CarFactory carFactory=new BenzFactory();
1700476719
1700476720 //开始生产奔驰SUV
1700476721
1700476722 System.out.println(“B、开始生产奔驰SUV”);
1700476723
1700476724 ICar benzSuv=carFactory.createSuv();
1700476725
1700476726 //生产完毕,展示一下车辆信息
1700476727
1700476728 System.out.println(“C、生产出的汽车如下:”);
1700476729
1700476730 System.out.println(“汽车品牌:”+benzSuv.getBand());
1700476731
1700476732 System.out.println(“汽车型号:”+benzSuv.getModel());
1700476733
1700476734 }
1700476735
1700476736 }
1700476737
1700476738 运行结果如下所示:
1700476739
1700476740 ===要求生产一辆奔驰SUV===
1700476741
1700476742 A、找到奔驰车工厂
1700476743
1700476744 B、开始生产奔驰SUV
1700476745
1700476746 C、生产出的汽车如下:
1700476747
1700476748 汽车品牌:奔驰汽车
1700476749
1700476750 汽车型号:G系列SUV
1700476751
1700476752 对外界调用者来说,只要更换一个具备相同结构的对象,即可发生非常大的改变,如我们原本使用BenzFactory生产汽车,但是过了一段时间后,我们的系统需要生产宝马汽车,这对系统来说不需要很大的改动,只要把工厂类使用BMWFactory代替即可,立刻可以生产出宝马车,注意这里生产的是一辆完整的车,对于一个产品,只要给出产品代码(车类型)即可生产,抽象工厂模式把一辆车认为是一个完整的、不可拆分的对象。它注重完整性,一个产品一旦找到一个工厂生产,那就是固定的型号,不会出现一个宝马工厂生产奔驰车的情况。那现在的问题是我们就想要一辆混合的车型,如奔驰的引擎,宝马的车轮,那该怎么处理呢?使用我们的建造者模式!
1700476753
1700476754
1700476755
1700476756
1700476757 设计模式之禅 30.2.2 按建造者模式生产车辆
1700476758
1700476759 按照建造者模式设计一个生产车辆需要把车辆进行拆分,拆分成引擎和车轮两部分,然后由建造者进行建造,想要什么车,你只要有设计图纸就成,马上可以制造一辆车出来。它注重的是对零件的装配、组合、封装,它从一个细微构件装配角度看待一个对象。我们来看生产车辆的类图,如代码清单30-4所示。
1700476760
1700476761
1700476762
1700476763
1700476764 图30-4 建造者模式建造车辆
[ 上一页 ]  [ :1.700476715e+09 ]  [ 下一页 ]