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 ]
[
下一页 ]