工厂模式的类图与mybatis中的应用

三个工厂模式

动机:

工厂里提供很多方法,不同方法新建不同对象

看了很多解释我的总结有以下几点:

1、减去繁琐的new工作,统一让工厂创建对象

2、软件系统中经常面临对象的创建工作,由于需求的变化,这个对象可能也随之发生变化,但他却拥有比较稳定的接口。需要提供一种封装机制来隔离出这个易变对象的变化,从而保持系统中其他依赖该对象的对象不随之需求变化而变化。

其次:

三个工厂模式,各有千秋

从简单工厂模式——》工厂方法模式,解决了对产品的拓展不符合OCT原则的问题

从工厂方法模式——》抽象工厂模式,解决了一个过程只能生产一个产品的问题

但是反而多了一个问题,部分不符合OCT原则的问题,对工厂的拓展符合OCT,但是每次要拓展一个产品,就要修改一次工厂里面的方法

类图:

简单工厂模式
在这里插入图片描述

工厂方法模式

在这里插入图片描述

抽象工厂模式
在这里插入图片描述

场景:

使用场景,mybatis的数据源工厂:

顺便复习了一趟mybatis的数据源和连接池,挺好的大致总结一下:

无论什么框架,操作数据库很多都需要这么一个流程:注册驱动、获取对象(包括配置)、再去执行SQL,那mybatis作为框架封装了数据源的模块,每次我们都从数据源工厂获取不同的数据源:
在这里插入图片描述

没错,就是工厂模式,JNDI数据源工厂就生成JNDI数据源,POOL数据源工厂就生成带连接池的数据源工厂,unpool数据源工厂生成的就是不带数据源工厂的。

参考:https://www.cnblogs.com/firstdream/p/8666845.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值