抽象工厂模式 实物举例
一个工厂同时要生产出多个产品——工厂是多任务多产品的,这样就必须使用“抽象工厂模式”
示例:假设一个工厂需要生产Gun 、Food、Car这三个产品,工厂A和工厂B生产的产品分别是gun1、food1、car1和gun2、food2、car2,
这个时候就需要抽象出一个工厂Factory来生产Gun 、Food、Car这三个产品,利用“子类替换父类对象”的原理,工厂A和工厂B分别去继承这个Factory,如果要换产品就只需要修改new 的子类对象——具体哪个工厂,这样就不学要修改大量的代码,就能生产出不同的产品。
缺点:如果再添加一个产品,这样就需要改很多东西——抽象类Factory还有对应的产品,这样只要与factory相关的都需要改,所以利用这种模式的时候需要认清这种方式的缺点。
注意:Factory、Gun 、Food、Car应该都是抽象类,而不能是接口,从这点可以理解接口和抽象类的作用和区别——接口是为了解决方法的统一,抽象类是为了“子类替代父类对象”,这样代码修改量简单却能改变不同的结果。
回忆过去,珍惜现在,放眼未来