抽象工厂模式指提供一个创建一系列相关或相互依赖对象的接口,无需指定它们的具体类。
也就是,一个工厂可以生产不同等级的产品(具体工厂类中不同方法中创建不同实例,这里的实例对象的类实现了不同的接口)
客户端不依赖于产品类实例如何被创建和实现的细节,主要用于系统的产品有多于一个的产品族,而系统只消费其中某一个产品族产品的情况。
抽象工厂模式的缺点是不方便扩展产品族,并且增加了系统的抽象性和理解难度。
java.sql.Connection 接口就是一个抽象工厂,其中包括很多抽象产品如 Statement、Blob、Savepoint 等。
抽象工厂模式