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

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

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

阅读附件中的参考代码:

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

  • 二者的数据存储方式不同,对应方法的实现也不同。StudentDaoListImpl.java中采用List存储,而StudentDaoArrayImpl.java是采用数组形式存储的。二者相比较,用List存储数据,代码会比较简洁。

  • 例如:public boolean addStudent(Student student)这个方法下,采用List的代码直接调用已有的库函数add进行增加人数,而数组需要采用循环遍历判断是否存在这个数据。

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

  • 用处:StudentDao是一个接口,用于存放业务逻辑,主要让处理及操作资料库更为方便,可以在其他的类中实现。编写接口的方式和类很相似,但接口并不是类,属于不同的概念,类描述对象的属性和方法,接口则包含类要实现的方法,且接口中的方法都是公有的。
  • 原因:接口中定义的方法,可以在不同的类中有不同的实现方法。他只是确定了方法,但对于具体的实现中,不同的对象实现这个行为的方法也是不同的。

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

DAO是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。

  • DAO模式实现两次隔离

    • 隔离数据访问代码和业务逻辑代码。业务逻辑代码可以直接调用DAO方法,不影响业务逻辑代码。当接口决定后一般是不变的,我们在使用的时候传参都是一样的,等于说实现的功能是一样的。所以不用担心存储类型之类的问题。
    • 隔离不同数据库的实现。当后续如果数据库有变动,我们不需要对原先的数据库进行修改,可以直接添加一个实现类。在使用是时候,只需要用到对应的实现方法就可以,这也提高了提高了代码扩展性。
  • DAO模式组成

    • DAO接口:把对数据库的所有操作定义成抽象方法,可以提供多种实现

      可以理解为是一些行为和合集。例如在购物车中,添加删除商品,计算商品总价的时候,可以将这个接口方法确定,之后再用这个接口实现功能。

    • DAO实现类:具体实现

    • 实体类:用于存放与传输对象数据

    • 数据库连接和关闭工具类

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

  • 使用数组实现(修改前)

    代码如下:

    运行结果:

  • 使用列表实现(修改后)

    代码如下:

    运行结果:

  • 通过代码修改前后,可以看出他们实现是不同的,但是他们的输出结果是一样的。

  • DAO模式好处:

    • 在写数据的时候,可以不用考虑后台的数据是什么结构。只需要修改数据访问的方式就可以再不同的接口上使用。
    • DAO将业务逻辑和数据处理分开,可以使代码便捷化。
    • 例如在这个代码中,在StudentDaoArrayImpl和StudenDaoListImpl两个类中使用ArrayList和数组进行存储数据,但都实现了studentDo接口,无需去修改代码

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

    public boolean add(Commodity e,int count);//加入购物车
	public boolean remove(Integer id);//将商品移除
	public void diplayAll();//输出购物车内商品条目
	public double checkout();//输出总金额
	public boolean delete(Integer id);//删除条目

参考视频:5.4 案例:DAO模式

posted @ 2021-10-17 09:07  GGGa-Yi  阅读(206)  评论(0编辑  收藏  举报