模式
2015-08-04 10:40
337 查看
一、DAO模式
DAO:data access object,数据访问对象,不论数据存储在普通的文本文件、CSV文件、关系数据库(rdbms)、ldap,使用DAO模式访问数据的客户端代码可以完全忽视这种差异,而以统一的接口来访问相应数据。
eg:action―>ucc―>service―>DAO.
此外,异常一般在dao、service抛出,ucc进行捕捉异常(如果捕捉到,则抛出new RollbackException()进行事物回滚),ucc层继续抛出,action捕捉
二、适配器模式
接口A中有很多方法,如果CLASS B 继承该接口,那么B需要实现接口中的所有方法,但是当不想实现所有方法的时候,这个时候可以用抽象类C继承接口A,再用B继承C,起到适配的效果。
三、单例模式
保证在程序中,一个类只有一个实例存在,通过final static 修饰对象实现
eg:
class Single{
private Single(){}
private static final Single s1=new Single();
四、工厂模式(又叫:静态工厂模式)
通过静态方法,用来实例化 目标类,达到就算新增方法,也不需要去修改过多代码的目标。eg:
class Factory{
public static Car getCarInstance(String type){
Car c=null;
c=(Car)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
.........
五、静态代理模式和动态代理模式(eg:rmi)
http://www.zhihu.com/question/20794107 http://blog.csdn.net/myfmyfmyfmyf/article/details/8229807 当使用动态代理模式的时候,当服务端增加方法后,不需要去修改代理对象中的代码,通过invoke即可以动态实现方法调用
六、模板方法模式
思路:接口或抽象类中定义抽象方法及定义一般方法,在一般方法中调用具体的抽象方法的实现。(父类调用子类的方法).
七、门面模式
思路:客户端不关心太多的实现,只需调用一个门面,门面内部再去调用其它方法
八、策略模式
Calc c=new Calc();
//c.add.oper(a, b);
c.jian.oper(a, b);
public class Calc {
public final static Operation add=new Add();
public final static Operation jian=new Jian();
public final static Operation cheng=new Cheng();
public final static Operation chu=new Chu();
..............
DAO:data access object,数据访问对象,不论数据存储在普通的文本文件、CSV文件、关系数据库(rdbms)、ldap,使用DAO模式访问数据的客户端代码可以完全忽视这种差异,而以统一的接口来访问相应数据。
eg:action―>ucc―>service―>DAO.
此外,异常一般在dao、service抛出,ucc进行捕捉异常(如果捕捉到,则抛出new RollbackException()进行事物回滚),ucc层继续抛出,action捕捉
二、适配器模式
接口A中有很多方法,如果CLASS B 继承该接口,那么B需要实现接口中的所有方法,但是当不想实现所有方法的时候,这个时候可以用抽象类C继承接口A,再用B继承C,起到适配的效果。
三、单例模式
保证在程序中,一个类只有一个实例存在,通过final static 修饰对象实现
eg:
class Single{
private Single(){}
private static final Single s1=new Single();
四、工厂模式(又叫:静态工厂模式)
通过静态方法,用来实例化 目标类,达到就算新增方法,也不需要去修改过多代码的目标。eg:
class Factory{
public static Car getCarInstance(String type){
Car c=null;
c=(Car)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
.........
五、静态代理模式和动态代理模式(eg:rmi)
http://www.zhihu.com/question/20794107 http://blog.csdn.net/myfmyfmyfmyf/article/details/8229807 当使用动态代理模式的时候,当服务端增加方法后,不需要去修改代理对象中的代码,通过invoke即可以动态实现方法调用
六、模板方法模式
思路:接口或抽象类中定义抽象方法及定义一般方法,在一般方法中调用具体的抽象方法的实现。(父类调用子类的方法).
七、门面模式
思路:客户端不关心太多的实现,只需调用一个门面,门面内部再去调用其它方法
八、策略模式
Calc c=new Calc();
//c.add.oper(a, b);
c.jian.oper(a, b);
public class Calc {
public final static Operation add=new Add();
public final static Operation jian=new Jian();
public final static Operation cheng=new Cheng();
public final static Operation chu=new Chu();
..............
相关文章推荐
- CodeForces 405B Playing Dominoes acm 模拟题
- linux下查找的相关命令
- SVN--分支、合并
- Jsoup学习笔记10:Saz2Csv解析器
- scala时间处理-获取今天日期,昨天日期,本周时间,本月时间,时间戳转换日期,时间比较
- 浅谈nodejs中的Crypto模块
- OpenGL: What is MatrixMode?
- 南邮 OJ 1083 ACM竞赛之输入输出
- struts2拦截器interceptor的三种配置方法
- 把ppt转成pdf格式浏览的方法
- bc第七场Little Pony and Dice(dp)
- Dojo框架:误解与现实
- C语言main函数的参数含义及输入
- 弹出窗口居中显示
- ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- servelet 连接mysql
- 科学家证实银河系恒星群迁移
- 南邮 OJ 1081 组织集体活动
- linux运维必会MySQL企业面试题近百个
- linux运维必会MySQL企业面试题近百个