工厂方法模式:
一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。
区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
抽象工厂模式适用场景:
(1)主要用于把公共的业务逻辑提取出来,以后业务逻辑层(serviceImpl)的代码不再会变化,做工具接口使用比较合适。
(2)并且扩展性比较好,扩展产品族符合开闭原则,扩展产品等级不符合开闭原则。开闭原则的倾斜性。
对于抽象工厂模式和开闭原则比较恰当的理解章如下链接:
http://www.voidcn.com/article/p-moyewlje-em.html