1. 定义
抽象工厂模式提供一个接口, 用于创建相关或依赖对相关的家族, 而不需要明确指定具体的类
角色
- 抽象工厂: 定义了一个接口, 接口中包含一组方法来生产 产品
- 具体工厂: 具体工厂实现了抽象工厂
- 抽象产品: 抽象产品可以有多个
- 具体产品: 实现了抽象产品, 由具体工厂来创建
举例
JDBC里面的一坨东西就是抽象工厂模式
- 抽象工厂:
java.sql.Connection
- 具体工厂:
com.mysql.cj.jdbc.ConnectionImpl
,com.zaxxer.hikari.pool.HikariProxyConnection
,com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl
- 抽象产品:
java.sql.Statement
,java.sql.DatabaseMetaData
- 具体产品:
com.alibaba.druid.pool.DruidPooledCallableStatement
,com.zaxxer.hikari.pool.HikariProxyStatement
,com.zaxxer.hikari.pool.HikariProxyDatabaseMetaData
,com.alibaba.druid.proxy.jdbc.DatabaseMetaDataProxyImpl