发表于: 2017-07-28 23:15:16

1 913


DAY 8


今天学习了简单工厂设计模式和工厂设计模式,重新理解了DAO的意义,简单了解了JdbcTemplate和Mybatis的概念。


一、今天完成的内容

一、工厂设计模式

工厂设计模式的目的:降低调用者和实现者之间的耦合度。当需求发生变化(增加或改变)时,不改变原有代码的结构。 

1.简单工厂设计模式:

优点:降低了调用者和实现者之间的耦合度。当引入一个新的实现类型时,只需要增加一个实现类,然后修改工厂类即可。 
缺点:只适用于层次结构较为简单的情况。如果可能的实现类型很多,工厂类中的逻辑会很复杂,可读性差。


2.工厂设计模式

优点:进一步降低了调用者和实现者之间的耦合度。当引入一个新的实现类型时,只需要增加一个实现类,然后增加一个对应的工厂类即可。不需要修改已经存在的代码。


二、DAO:

DAO是基于工厂设计模式的一种操作数据的思想。

DAO分离了业务逻辑和数据访问逻辑,让业务逻辑通过DAO访问数据。

当数据操作方式变化时,只需要增加一个新的数据操作方式和一个工厂类即可。

一个完整的DAO包括:【工厂模式】

(1)DAO工厂接口:定义DAO工厂类中方法规范的接口(有哪些方法、返回值、参数列表等)

(2)DAO工厂类:直接被业务逻辑所调用,创建出业务逻辑需要的数据访问类的实例。

(3)数据访问接口:定义数据访问类中方法规范的接口(有哪些方法、返回值、参数列表等)

(4)数据访问类:直接操作数据,对象创建于对应的DAO工厂类中。在业务逻辑中以类似

"数据访问接口 变量名 = DAO工厂对象.获取数据访问对象();"的形式获取。

(5)数据传递对象:被操作的数据对象,对应数据库中的表。


如果数据访问类型不多,可以将这个体系简化:【简单工厂模式】

不需要DAO工厂接口,直接在DAO工厂类中定义静态方法,根据业务逻辑传递的参数,创建相应的数据访问对象,来操作数据。


三、JdbcTemplate

JDBCTemplate是Spring对jdbc的封装,但sql语句还是要自己写。

写sql语句的结果:增加操作灵活性,但只能针对单数据库。(当然,用DAO思想可以将每个数据库的操作方式作为一个数据访问类)


四、Mybatis

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架,消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。


二、收获

如上


三、遇到的问题

暂无


四、明天计划

学习框架内容



返回列表 返回列表
评论

    分享到