设计模式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;
}
}

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

具体解释。。设计模式5——DAO。。studying的更多相关文章

  1. 粗略。。Java项目设计模式之笔记----studying

    设计模式 设计模式:解决这个问题的一种行之有效的思想. 设计模式:用于解决特定环境下.反复出现的特定问题的解决方式. 设计模式学习概述 ★ 为什么要学习设计模式 1.设计模式都是一些相对优秀的解决方式 ...

  2. J2EE之DAO设计模式及简单实现

    JAVAEE(Java Enterprise Edition ) 模式 : DAO模式 因此在了解DAO模式之前,我们先来学习一下Java EE的体系结构: (一)JavaEE体系结构 客户端: 客户 ...

  3. DAO设计模式

    DAO设计模式 DAO设计模式简介: DAO设计模式可以减少代码量,增强程序的可移植性,提高代码的可读性. DAO(数据库操作对象)设计模式是 JavaEE 数据层的操作.主要由五部分组成: 1.数据 ...

  4. Java学习之DAO设计模式

    DAO设计模式是一个javaEE里的设计模式,DAO是Data Access Object 数据访问接口. 一个典型的DAO实现有三个组件: 1.一个DAO接口 2.一个DAO接口的具体类: 3.数据 ...

  5. 粗略。。。java设计模式总结。。。studying

    设计模式5--DAO(data access object) 1)把本机内存数据保存到指定目录中 2)把本机指定目录中数据读取到内存中 设计模式4--装饰模式 1)加强某个类的功能,并把该类加到加强类 ...

  6. Design Patterns Simplified - Part 2 (Singleton)【设计模式简述--第二部分(单例模式)】

    原文链接: http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part-2-singleton/ De ...

  7. 设计模式之桥接模式(Bridge)

    注:本文不属于原创,而是根据原文重新整理,原文是:我给媳妇解释设计模式:第一部分 设计模式不是基于理论发明的.相反,总是先有问题场景,再基于需求和情景不断演化设计方案,最后把一些方案标准化成“模式”. ...

  8. 猿取向的规划设计模式 ——GoF《设计模式》阅读摘要(零)

    这个话题是很奇怪,设计模式是引导程序的设计不是模仿什么软件?呃.我的意思是,这是 面"对象"相对的设计模式. 我曾见过有人写<给妻子解释设计模式>,这样的把计算机中的思 ...

  9. 设计模式之迭代器模式详解(foreach的精髓)

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 各位好,很久没以LZ的身份和 ...

随机推荐

  1. Jetty 类载入问题处理

    前几日使用 Jetty (9.2)部署公司一个 web 项目,这个项目原本部署在 Tomcat server上,一切正常,可是部署到 Jetty 后,启动报错.关键错误信息为"java.la ...

  2. USACO milk

    /* ID:kevin_s1 PROG:milk LANG:C++ */ #include <iostream> #include <string> #include < ...

  3. centOS6.3(64bit)Hadoop的Eclipse开发环境搭建

    操作系统centos6.3(64位) 一个namenode 两个datanode Hadoop版本号:hadoop-1.1.2 Eclipse版本号:eclipse-standard-kepler-S ...

  4. 单线程实现检索当当网泄露的1GB用户数据

     新建项目dangdangusersearch 2.编写头文件head.h #ifndef _HEAD_H_ #define _HEAD_H_ #include <stdio.h>   ...

  5. php数组合并有哪三种方法

    php数组合并有哪三种方法 一.总结 一句话总结:array_merge():array_merge_recursive():‘+'号 $a = array('color'=>'red',5,6 ...

  6. poppler交叉编译

    项目须要生成和打开pdf文件,编译了pdflib库,能够使用.可是上面有水印. ..假设是商业用途去水印的话须要获得许可. 没办法.换呗. 然后就是poppler,这个库的功能非常强大,里面更是增加了 ...

  7. [Java开发之路](16)学习log4j日志

    1. 新建一个Javaproject.导入Jar包(log4j-1.2.17.jar) Jar包下载地址:点击打开链接 2. 配置文件:创建并设置log4j.properties # 设置 log4j ...

  8. Menu-actionBarMenu字体颜色修改

    经常会遇到对menu字体颜色进行修改的情况,今天就遇到了一个.就是在action上有一个menu是黑色的,想要改成白色.方法如下 <style name="Email.Theme&qu ...

  9. RecyclerView 展示多种类型Item数据

    一.多Item布局实现(MultipleItem) 如果之前你用过ListView实现过此功能,那么你一定对下面这两个方法并不陌生 @Override public int getItemViewTy ...

  10. golang md5

    package main import ( "crypto/md5" "encoding/hex" "fmt" "io" ...