在软件系统中,经常面临着“一系列相互依赖的对象工作”;同时,由于需求的变化,往往存在更多系列对象的创建工作。
如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合。
P.s.
抽象工厂本质是对工厂模式的延续,在工厂模式中我们是把同一批基于同一个的基/父类的创建都使用单独的工厂创建,但是又是虽然来自不同基类的类也有相关性,此时我们将其耦合在一起使用一个工厂创建反而会提高效率也没有其它的坏处,比如:对同一个链接的操作的类,虽然不同的行为的父类是不同的,但是他们都是针对同一个链接,此时我们就可以使用一个类将所有行为都放在一起并使用一个工厂创建。
注:由于使用同一个工厂创建,该工厂会将所有的成员都创建包括不用的也会。(也可以使用装饰模式去叠加工厂,做到自定义工厂)
提供一个接口,让该接口负责创建一系列”相关或者相互依赖的对象“,无需指定它们具体的类。 ——《设计模式》GoF