5-互评-OO之接口-DAO模式代码阅读及应用

5-互评-OO之接口-DAO模式代码阅读及应用

DAO模式是接口的一个典型应用

阅读附件中的参考在吗:

\1. StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?

StudenDaoListImpl.java利用List列表的方式存储,StudentDaoArrayImpl.java利用数组的方式存储;用List列表存储总体来说更简洁更易懂。

\2. StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?

StudentDao.java主要是让处理及操作资料库更为方便,用来封装资料库持久层的操作,即可将很多复杂的资料操作语法和业务逻辑分开,只说明了业务逻辑为如何,然后将数据库的所有操作定义成抽象方法,可以提供多种数据结构方式实现。

\3. 使用搜索引擎搜索“Java DAO”,选出几句你能看懂的、对你最有启发的话。请结合接口知识去理解。

参考网址:https://www.runoob.com/note/27029


对外提供相应的接口

在面向对象设计过程中,有一些"套路”用于解决特定问题称为模式。

DAO 模式提供了访问关系型数据库系统所需操作的接口,将数据访问和业务逻辑分离对上层提供面向对象的数据访问接口。

从以上 DAO 模式使用可以看出,DAO 模式的优势就在于它实现了两次隔离。

  • 1、隔离了数据访问代码和业务逻辑代码。业务逻辑代码直接调用DAO方法即可,完全感觉不到数据库表的存在。分工明确,数据访问层代码变化不影响业务逻辑代码,这符合单一职能原则,降低了藕合性,提高了可复用性。
  • 2、隔离了不同数据库实现。采用面向接口编程,如果底层数据库变化,如由 MySQL 变成 Oracle 只要增加 DAO 接口的新实现类即可,原有 MySQ 实现不用修改。这符合 "开-闭" 原则。该原则降低了代码的藕合性,提高了代码扩展性和系统的可移植性。

理解:

  • 定义简单

    1. 写DAO层不必像Hibernate或ibatis那样为每个数据实体都创建一个新的配置文件
    2. 只需定义一个接口,集中了对数据库的操作、程序的调用、数据源的使用等
  • 使用简单

    1. 使用时只需为数据实体创建一个接口,不需对其实现
    2. 使用主或从主库,指定数据源都在此接口中
  • 不用拼写复杂的sql

    1. 不用程序拼写sql将参数加入进来,框架对参数自动填充处理
    2. 除支持标准sql外,另外增加了动态操作语法:if/else、for 循环等
  • 主从分离

    1. 根据查找或更新操作自动的判断使用主或从库
    2. 执行sql时动态的切换主从数据库,不必为分库烦恼
    3. 也可在执行强制的使用主或从

\4. 尝试运行Test.java。根据注释修改相应代码。结合参考代码回答使用DAO模式有什么好处?

  • 数据访问层代码变化不影响业务逻辑代码,功能单一,分工明确,安全
  • 隔离了不同数据库实现。可以实现多种数据结构存储,且各方式之间互不影响,添加新方式方便,改变存储方式方便

5.可选:编写一些使用DAO模式的代码。比如使用文件作为购物车存储底层。

posted @ 2020-10-25 19:14  Sogger  阅读(91)  评论(0编辑  收藏  举报