详解。。设计模式5——DAO。。studying
2015-08-21 00:39
267 查看
设计模式5——DAO
★ 场景和问题
在Java程序中,经常需要把数据持久化,也需要获取持久化的数据,但是在进行数据持久化的过程中面临诸多问题
(如:数据源不同、存储类型不同、供应商不同、访问方式不同等等),
请问如何能以统一的接口进行数据持久化的操作?
例如:
★ DAO的理解
1、DAO其实是利用组合工厂模式来解决问题的,并没有带来新的功能,所以学的其实就是个思路。
2、DAO理论上是没有层数限制的。
3、DAO的各层理论上是没有先后的。
★ DAO模式的本质
一层屏蔽一种变化
图片显示路径:
★ 代码实现
其他代码超链接:点击打开链接
★ 场景和问题
在Java程序中,经常需要把数据持久化,也需要获取持久化的数据,但是在进行数据持久化的过程中面临诸多问题
(如:数据源不同、存储类型不同、供应商不同、访问方式不同等等),
请问如何能以统一的接口进行数据持久化的操作?
例如:
★ DAO的理解
1、DAO其实是利用组合工厂模式来解决问题的,并没有带来新的功能,所以学的其实就是个思路。
2、DAO理论上是没有层数限制的。
3、DAO的各层理论上是没有先后的。
★ DAO模式的本质
一层屏蔽一种变化
图片显示路径:
★ 代码实现
package cn.hncu.patterns.exercise.dao; import cn.hncu.patterns.exercise.dao.api.DeputyDAO; import cn.hncu.patterns.exercise.dao.factory.F1Factory; public class Client { public static void main(String[] args) { DeputyDAO d = F1Factory.getDeputyDAO(); d.createInformation("001", "Lucy"); } }
package cn.hncu.patterns.exercise.dao.api; public interface DeputyDAO { /* * userID-主键,内部生成 * name-用户名字 */ public void createInformation(String userID, String name); }
package cn.hncu.patterns.exercise.dao.factory; import cn.hncu.patterns.exercise.dao.api.DeputyDAO; import cn.hncu.patterns.exercise.dao.imp.a.A_f2Factory; import cn.hncu.patterns.exercise.dao.imp.b.B_f2Factory; public class F1Factory { public static DeputyDAO getDeputyDAO() { int type = 1; if (type == 1) { return A_f2Factory.getDeputyDAO(); } else if (type == 2) { return B_f2Factory.getDeputyDAO(); } return null; } }
其他代码超链接:点击打开链接
相关文章推荐
- 详略。。。设计模式4——装饰模式。。。studying
- 粗略。。Java项目设计模式之笔记----studying
- 粗略。。类设计的基本经验3之笔记
- windows 2003 server 远程桌面禁用本地资源,磁盘驱动器,串行口,复制文件
- 文章标题
- 个人助理的权威定义
- 经典语录
- 黑马程序员——反射
- C#中的Action<>和Func<>
- Java设计模式之适配器模式
- Python小结点&递归例子
- 各大牛逼讲师的经典Jquery精品视频教程,大放送啦!!!(包括手机移动端JqueryWeb开发)!!!
- Java设计模式之单例模式
- HDU 4345 Permutation dp
- 读书笔记之计算机系统(4)
- MySQL CMake参数说明手册 【转载】
- Java设计模式之原型模式
- makefile中“=”和“:=”的区别
- Android利用布局实现伪自定义商品数量加减控件
- 工作流图形设计器参考资料