设计模式_抽象工厂模式
看个例子:宝马工厂可以生产宝马七个系列,并且都有大小型之分?
定义汽车行为接口【ICar】,定义方法【startEngine】,定义方法【carSize】。

定义宝马抽象类【AbstractBaoMaCar】实现接口,并实现【startEngine】方法。

定义小型宝马类【SmallBaoMaCar1x】【SmallBaoMaCar2x】,【BigBaoMaCar1x】【BigBaoMaCar2x】继承宝马抽象类,实现【carSize】方法。

略。
定义汽车行为接口【ICarFactory】,定义方法【createBaoCar】。
定义抽象汽车工厂类【AbstractCarFactory】,定义汽车生产方法【makeCars】。

定义宝马汽车工厂【SmallBaoMaFactory】【BigBaoMaFactory】,继承【AbstractCarFactory】,可以分别生产大小宝马的不同系列。


测试结果:

总结:我们来归纳一下
简单工厂:它是一个具体的类,非接口抽象类。有一个重要的create()方法,利用if或者switch创建产品并返回(比较简单就不赘述了)。

工厂方法模式和抽象工厂模式的区别:工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则是针对的多个产品等级结构,如造车,只针对汽车牌子那么工厂方法模式就能实现。但是如果有不同的汽车牌子,每个牌子下有不同型号,每个型号下有不同配置,很显然,工厂方法模式不太适用。
浙公网安备 33010602011771号