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;
    	}
    }
    

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






  • 相关阅读:
    ZOJ 3332 Strange Country II
    ZOJ 3331 Process the Tasks(双塔DP)
    ZOJ 3326 An Awful Problem(模拟)
    HDU 1796 How many integers can you find(容斥原理)
    HDU 4059 The Boss on Mars(容斥原理)
    HDU 4135 Co-prime(容斥原理)
    HDU 5677 ztr loves substring(回文串加多重背包)
    CodeForces 668B Little Artem and Dance
    CodeForces 667A Pouring Rain
    Java实现 LeetCode 764 最大加号标志(暴力递推)
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7086824.html
Copyright © 2011-2022 走看看