抽象工厂模式
抽象工厂模式是对象的创建模式
1.产品族和产品层次的概念
这两个概念的区别用文字确实比较难以描述,但是又是两个十分重要的概念,这关系到抽象工厂的方法应该如何申明。建议参考阎博士的《Java与模式--抽象工厂模式》
2.什么情况下应该使用抽象工厂
1)一个系统不应当以来于产品类实例如何被创建、组合和表达细节,这对于所有形态的工厂模式是重要的。
2)这个系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。
3)同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中表现出来。
4)系统体统一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于实现。
3.抽象工厂对“开-闭”原则的支持
对于产品族的增加,抽象工厂符合“开-闭”原则;而对于产品层次的增加,抽象工厂不符合“开-闭”原则
补充:个人认为目前平台使用的工厂模式已经很够用了,没必要把现在平台的工厂模式硬性变成抽象工厂。我们并没有这方面的需要。还是那句话,东西够用就好,番事不要太过。不要为了模式而模式。