您的位置:首页 > 其它

详解。。设计模式5——DAO。。studying

2015-08-21 00:39 267 查看
设计模式5——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;
	}
}


其他代码超链接:点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: