打字猴:1.700476654e+09
1700476654 抽象工厂定义了每个工厂必须生产两个类型车:SUV(运动车)和VAN(商务车),否则一个工厂就不能被实例化,我们来看宝马车工厂,如代码清单30-20所示。
1700476655
1700476656 代码清单30-20 宝马车工厂
1700476657
1700476658 public class BMWFactory implements CarFactory{
1700476659
1700476660 //生产SUV
1700476661
1700476662 public ICar createSuv(){
1700476663
1700476664 return new BMWSuv();
1700476665
1700476666 }
1700476667
1700476668 //生产商务车
1700476669
1700476670 public ICar createVan(){
1700476671
1700476672 return new BMWVan();
1700476673
1700476674 }
1700476675
1700476676 }
1700476677
1700476678 很简单,你要我生产宝马商务车,没问题,直接产生一个宝马商务车对象,返回给调用者,这对调用者来说根本不需要关心到底是怎么生产的,它只要找到一个宝马工厂,即可生产出自己需要的产品(汽车)。奔驰车工厂与此类似,如代码清单30-21所示。
1700476679
1700476680 代码清单30-21 奔驰车工厂
1700476681
1700476682 public class BenzFactory implements CarFactory{
1700476683
1700476684 //生产SUV
1700476685
1700476686 public ICar createSuv(){
1700476687
1700476688 return new BenzSuv();
1700476689
1700476690 }
1700476691
1700476692 //生产商务车
1700476693
1700476694 public ICar createVan(){
1700476695
1700476696 return new BenzVan();
1700476697
1700476698 }
1700476699
1700476700 }
1700476701
1700476702 产品和工厂都具备了,剩下的工作就是建立一个场景类模拟调用者调用,如代码清单30-22所示。
1700476703
[ 上一页 ]  [ :1.700476654e+09 ]  [ 下一页 ]