JDBC的封装
我们是否考虑过这样一个问题,如何才能提高程序的可读性和可维护性,且方便在不同数据库之间切换呢?
对于这个问题,我们需要定义统一的抽象的API,这里可以将操作数据的代码抽象成接口,业务处理代码只需调用这些接口就可以实现对数据的访问,从而隔离实现细节,采用面向对象接口编程,可以降低代码间的耦合性,提高代码的可扩展性和可维护性。
DAO模式 ——一种非常流行的数据访问模式
DAO位于业务逻辑和持久化数据之间,实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来,对外提供相应的接口。
在面向对象设计过程中,有一些“套路”用于解决问题,称为模式。DAO模式提供了访问关系型数据库系统所需操作的接口,将数据访问和业务逻辑分离,对上层提供面向对象的数据访问接口。
DAO模式的优势在于它实现了两次分离
1.隔离了数据访问代码和业务逻辑代码。业务逻辑代码直接调用DAO方法即可,完全感觉不到数据库表的存在。分工明确,数据访问层代码变化不影响业务逻辑代码,这符合单一职能原则,降低了耦合性,提高了可复用性。
2.隔离了不同数据库实现。采用面向接口编程,如果底层数据库变化,如有MySQL变成Oracle,只要增加DAO接口的新实现类即可,原有MySQL实现不用修改。这符合“开—闭”原则,降低了代码的耦合性,提高了代码扩展性和系统的可移植性。
一个典型的DAO模式主要由以下几部分组成
D