设计模式之抽象工厂模式
设计模式之抽象工厂模式定义:抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。类图:
从类图中可以看出抽象工厂是多个工厂方法的集合;也是通过子类实现产品的创建。
下面我们比较下工厂方法和抽象工厂的异同:所有的工厂都是用来封装对象的创建;工厂方法使用继承,把对象的创建委托给子类,子类实现工厂方法来创建对象;抽象工厂使用对象组合,对象的创建被实现在工厂接口所暴露出来的方法中;所有的工厂模式都是用于减少应用程序和具体类之间的耦合程度;工厂模式中都应用了依赖倒置原则和针对抽象编程不针对具体类编程。
工厂模式中还有一种称不上设计模式的设计技巧,简单工厂类图如下