zoukankan      html  css  js  c++  java
  • 具体解释。。设计模式5——DAO。。studying

    设计模式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-username字
    	 */
    	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;
    	}
    }
    

    其它代码超链接:点击打开链接






  • 相关阅读:
    powerbulider9.0在数据窗口中实现滚动到新添加行
    C#获取当前路径,获取当前路径的上一层路径
    java开发工具使用
    plsql高级查询命令
    oracle基础命令
    oracle-11g-64位安装和plaql
    初识设计模式(装饰者模式)
    初识设计模式(观察者模式)
    观察者模式与发布订阅者模式的区别
    初识设计模式(策略模式)
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7086824.html
Copyright © 2011-2022 走看看