抽象工厂模式(Abstract Factory)

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

工厂方法模式或简单工厂关注的是单个产品对象的创建,要创建一系列的产品对象,而且这一系列对象时构建新的对象所需要的组成部分,也就是这一系列被创建的对象相互之间是有约束的,这一解决方案就是抽象工厂模式。在这个模式里面,会定义一个抽象工厂,在里面虚拟地创建客户端需要的这一系列对象,所谓虚拟的就是定义创建这些对象的抽象方法,并不去真正地实现,然后由具体的抽象工厂的子类来提供这一系列对象的创建。这样一来可以为同一抽象工厂提供很多不同的实现,那么创建的这一系列对象也就不一样了,也就是说,抽象工厂在这里起到一个约束的作用,并提供所有子类的一个同一外观,来让客户端使用。

抽象工厂的功能是为一系列相关对象或相互依赖的对象创建一个接口。一定要注意这个接口内的方法不是任意堆砌的,而是一系列相关或相互依赖的方法。AbstractFactory在Java中通常实现成为接口,不要误以为是抽象类。当然如果需要为这个产品组提供公共的功能,也可以实现为抽象类,但是一般不这么做。

AbstractFactory定义了创建产品所需要的接口,具体的实现是在实现类里面,通常在实现类里面就需要选择多种更具体的实现。所以AbstractFactory定义的创建产品的方法可以看成是工厂方法,而这些工厂方法的具体实现就延迟到了具体的工厂里面。也就是说使用工厂方法来实现抽象工厂。

原文地址:https://www.cnblogs.com/jiangu66/p/3198771.html