数据源模块其实是mybatis自己帮我们封装了一个数据库连接池,以便我们使用
包结构如下:
工厂模式: 属于创建型的设计模式,主要是统一创建其他实例对象,调用者不用关心对象创建的内部具体细节(这个我觉得是和建造者模式最大的区别)
简单工厂:
主要组成部分
工厂接口(Factory): 简单工厂的接口,定义了创建产品的方法,具体工厂必须实现这个接口
工厂角色(Concrete Factory): 简单工厂的接口实现,具体的创建者
产品接口(product): 产品的接口,定义了属性等,工厂创建各类产品
具体产品(Concrete Product):简单工厂所创建的详细实例对象
优点: 解耦(将产品创建和使用隔离)
屏蔽了创建的内部细节,不关注过程,只关注结果
缺点:不适用产品过多的情况,不符合单一职责原则,可读性扩展性不高
不符合开闭原则,修改某个产品时的工厂方法时,会影响其他
工厂模式:
区别: 不同产品有不同的工厂,一个工厂接口对应多个工厂实现,来生产不同产品
工厂模式的意义: 1、解耦 对象的创建和使用解耦
2、创建过程复杂时,工厂模式可以统一管理,好维护
3、业务扩展时,增加新的子工厂,好扩展
获取连接:
参考代码:org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(String, String)
回收连接:
org.apache.ibatis.datasource.pooled.PooledDataSource#pushConnection()