关于组合 和 集成 先放两篇文章:这两篇文章写的太好了.

http://blog.csdn.net/u013905744/article/details/51752044    Java的组合(持有对象)与继承的区别

http://blog.csdn.net/ycjnx/article/details/40952969  java继承和组合的区别,看两个例子,你就明白了

然后下面 我就贴出代码,给出一些具体的实例:

下面贴出代码:

IModel 接口: 
package com.etoak.shejimoshi.basequery.model;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import java.sql.SQLException;
import java.util.Map; public interface IModel { public JSONArray select(Map map); public JSONObject selectPageEasyUI(Map map); public JSONObject updatePageEasyUI(Map map) throws SQLException; public JSONObject deletePageEasyUI(Map map) throws SQLException; }
Model 实体类
package com.etoak.shejimoshi.basequery.model;

import com.etoak.shejimoshi.basequery.dao.SimpleDAO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig; import java.sql.SQLException;
import java.util.*; public class Model extends HashMap implements IModel { public Model() {
super();
} private String rows = "10";
private String page = "1";
private String nameSpace;
private SimpleDAO dao;
JsonConfig jf = new JsonConfig(); public SimpleDAO getDao() {
return dao;
}
public void setDao(SimpleDAO dao) {
this.dao = dao;
} public String getNameSpace() { return nameSpace; }
public void setNameSpace(String nameSpace) {
this.nameSpace = nameSpace;
} public String getRows() {
return rows;
}
public String getPage() {
return page;
} public void setRows(String rows) {
this.rows = rows;
}
public void setPage(String page) {
this.page = page;
} public JSONArray select(Map map) {
if (map.containsKey("sqlId") && map.get("sqlId") != null) {
return dao.select(nameSpace, (String) map.get("sqlId"), map, jf);
} else {
return dao.select(nameSpace, map, jf);
}
} public JSONArray select(String sqlid, Map map) {
return dao.select(nameSpace, sqlid, map, jf);
} public JSONObject selectPageEasyUI(Map map) {
return dao.selectPageEasyUI(nameSpace, map, jf);
} public JSONObject selectPageEasyUI(String sqlid, Map map) { return dao.selectPageEasyUI(nameSpace, sqlid, map, jf); } public JSONObject updatePageEasyUI(Map map) throws SQLException { return dao.updatePageEasyUI(nameSpace, map); } public JSONObject update(String string, Map map) throws SQLException { return dao.updatePageEasyUI(nameSpace, string, map); } public JSONObject deletePageEasyUI(Map map) throws SQLException { return dao.deletePageEasyUI(nameSpace, map); } }

dao接口

package com.etoak.shejimoshi.basequery.dao;

import com.ibatis.sqlmap.client.SqlMapClient;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig; import java.sql.SQLException;
import java.util.Map; public interface SimpleDAO { public JSONObject selectPageEasyUI(String nameSpace, Map map, JsonConfig jf); public JSONObject selectPageEasyUI(String nameSpace, String sqlid, Map map, JsonConfig jf); public JSONArray select(String nameSpace, Map map, JsonConfig jf); public JSONArray select(String nameSpace, String sqlid, Map map, JsonConfig jf); public JSONObject updatePageEasyUI(String nameSpace, Map map) throws SQLException; public JSONObject updatePageEasyUI(String nameSpace, String sqlid, Map map) throws SQLException; public JSONObject deletePageEasyUI(String nameSpace, Map map) throws SQLException; public SqlMapClient getSqlMapClient();
}

dao实现类

package com.etoak.shejimoshi.basequery.dao;

import java.sql.SQLException;
import java.util.Map; import com.ibatis.sqlmap.client.SqlMapClient;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig; public class SimpleDaoImpl implements SimpleDAO{ @Override
public JSONObject selectPageEasyUI(String nameSpace, Map map, JsonConfig jf) {
return null;
} @Override
public JSONObject selectPageEasyUI(String nameSpace, String sqlid, Map map, JsonConfig jf) {
return null;
} @Override
public JSONArray select(String nameSpace, Map map, JsonConfig jf) {
return null;
} @Override
public JSONArray select(String nameSpace, String sqlid, Map map, JsonConfig jf) {
return null;
} @Override
public JSONObject updatePageEasyUI(String nameSpace, Map map) throws SQLException {
return null;
} @Override
public JSONObject updatePageEasyUI(String nameSpace, String sqlid, Map map) throws SQLException {
return null;
} @Override
public JSONObject deletePageEasyUI(String nameSpace, Map map) throws SQLException {
return null;
} @Override
public SqlMapClient getSqlMapClient() {
return null;
}
}

user实体类:

package com.etoak.shejimoshi.userquery.model;

import com.etoak.shejimoshi.basequery.dao.SimpleDAO;
import com.etoak.shejimoshi.basequery.model.IModel;
import com.etoak.shejimoshi.basequery.model.Model;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import java.sql.SQLException;
import java.util.Map; public class User implements IModel { public static User config;
private Model model;
private SimpleDAO dao; public SimpleDAO getDao() {
return dao;
} public void setDao(SimpleDAO dao) {
this.dao = dao;
config.model.setDao(config.getDao());
} public User() {
super();
if (config == null) {
config = this;
config.model = new Model();
}
} @Override
public JSONArray select(Map map) {
return config.model.select(map);
} @Override
public JSONObject selectPageEasyUI(Map map) {
return config.model.selectPageEasyUI(map);
} @Override
public JSONObject updatePageEasyUI(Map map) throws SQLException {
return config.model.updatePageEasyUI(map);
} @Override
public JSONObject deletePageEasyUI(Map map) throws SQLException {
return config.model.deletePageEasyUI(map);
}
}

Java中组合 设计技巧 实例的更多相关文章

  1. Verilog设计技巧实例及实现

    Verilog设计技巧实例及实现 1 引言 最近在刷HDLBits的过程中学习了一些Verilog的设计技巧,在这里予以整理.部分操作可能降低代码的可读性和Debug的难度,请大家根据实际情况进行使用 ...

  2. Java 中静态变量和实例变量区别

    Java 中静态变量和实例变量区别 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量. 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量. 在程序运行时的区别: 实例变量属于某个对 ...

  3. Java中共享设计

    Java中的共享设计的思路是在Java中形成一个对象池,在这个对象池中保存多个对象, 新实例化的对象如果已经在池中定义了,则不再重复新定义,而从池中直接取出继续使用. 例如,对于字符串来说,Java ...

  4. java中只能有一个实例的类的创建

    Java中,如果我们创建一个类,想让这个类只有一个对象,那么我们可以 1:把该类的构造方法设计为private 2:在该类中定义一个static方法,在该方法中创建对象 package test; / ...

  5. JAVA中容器设计的进化史:从白盒到黑盒,再到跻身为设计模式之一的迭代器

    大家好,又见面了. 在我们的项目编码中,不可避免的会用到一些容器类,我们可以直接使用List.Map.Set.Array等类型.当然,为了体现业务层面的含义,我们也会根据实际需要自行封装一些专门的Be ...

  6. 解析Java中静态变量与实例变量的区别

    java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或者静态变量:另一种没有static修饰,为实例变量.      在语法定义上的区别:静态变量前要加static关键字,而实例 ...

  7. Java中静态变量与实例变量

    知识回顾 上一篇总结了java中成员变量和局部变量的区别,这一篇将总结静态变量和实例变量的一些特性和区别. 示例代码 package Variable; public class VariableDe ...

  8. java中反射讲解及实例

    Java反射机制详解 java 反射 定义 功能 示例 概要: Java反射机制详解 | |目录 1反射机制是什么 2反射机制能做什么 3反射机制的相关API ·通过一个对象获得完整的包名和类名 ·实 ...

  9. JAVA中的优化技巧(适用Android)

    最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...

随机推荐

  1. 青否云 - 小程序待办事项 jquery开源系统

    青否云最新开源系统:小程序待办事项 jquery-demo 青否云 Jquery demo 下载地址:https://github.com/qingful/jquery-demo 官网 http:// ...

  2. 【java】抓取页面内容,提取链接(此方法可以http get无需账号密码的请求)

    package 网络编程; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileOutpu ...

  3. 【java】java.util.regex.Pattern和java.util.regex.Matcher简单示例

    package 正则; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test_regex ...

  4. 对Spring与SpringMVC的理解

    Spring 在我的Spring --简介及环境搭建跑通Hello提到关于Spring的基本结构与功能 SpringMVC 先上一张SpringMVC的流程图 Spring MVC 是一个模型 - 视 ...

  5. MySQL创建一个固定频率执行且自定义"开始"时间的定时任务event

    drop event if exists evt_test;create event evt_teston schedule every 10 SECOND  -- 每10秒执行一次(second可以 ...

  6. android操作系统在itop4412开发板上的烧写

    ITOP4412启动模式: 1.EMMC启动模式:拨码开关1-3为011 2.SD卡启动模式:拨码开关1-3为100uboot:初始化内存控制器,访问存储器,把操作系统内核从存储器读取出来放到内存中, ...

  7. 学习 Kubernetes 的 Why 和 How - 每天5分钟玩转 Docker 容器技术(114)

    这是一个系统学习 Kubernetes 的教程,有下面两个特点: 系统讲解当前最流行的容器编排引擎 Kubernetes包括了安装部署.应用管理.网络.存储.监控.日志管理等多各个方面. 重实践并兼顾 ...

  8. for 在项目实战中用的比较多

    for循环编程语言中的语句之一,用于循环执行.for循环是开界的,它的一般形式为: for(; <条件表达式>; ) 语句: 初始化通常是一个赋值语句, 它用来给循环控制变量赋初值: 条件 ...

  9. Windows 刷新DNS缓存

    释放IP配置信息 ipconfig /release 刷新DNS ipconfig /flushdns 更新网卡适配器 ipconfig /renew

  10. 10 Easy Steps to a Complete Understanding of SQL

    原文出处:http://tech.pro/tutorial/1555/10-easy-steps-to-a-complete-understanding-of-sql(已经失效,现在收集如下) Too ...