有一种用法:给每个工厂一个ID,根据ID,把工厂放到一个数组(可以是类成员,一个管理工厂的类)里,即用ID做数组下表;创建包时,把包ID传进去,用数组下标调用相应的工厂,返回包。
之所以叫抽象工厂模式,是把工厂也和产品一样抽象出来,这样做的好处是当增加一个产品时,不需要改变原来的工厂类,只是加上相应的类。符合设计原则OCP.
1)从Factory里create出Procduct Animal,包括狗和猫.
2)Animal是Product的基类:
Dog从Animal继承下来的Product的子类:
同理Cat: