使用代理类增强业务类的功能示例
来源:互联网 发布:js改变div的style 编辑:程序博客网 时间:2024/04/28 09:19
有时我们想要对原有的项目添加业务功能,又不想去修改原有代码中的业务类,那么我们可以使用代理类来实现该做法,在不改变原有业务类的基础上增强业务类的功能,下面
创建一个简单的示例介绍:
①新建一个测试应用(AgencyDemo)
② 添加处理学生业务的接口StudentDao
public interface StudentDao { public void add();}
③ 处理学生业务接口的实现类 StudentDaoImpl
public class StudentDaoImpl implements StudentDao{ public void add() { //这里是你添加的繁杂业务,在这里只是示范作用 System.out.println("执行新增学生的新增...."); } //通过该方法我们可以看到,在该实现类中只有一个新增学生的方法,那么此时如果我们在执行add之前先开启业务, //,结束时关闭业务,而又不想在这里修改实现类的代码,我们可以采用代理类}
④ 新建学生的代理类并继承业务接口 StudentDaoAgency
public class StudentDaoAgency implements StudentDao{ private StudentDao target;//被代理的对象 //在初始化的时候将被代理的对象传递进来 public StudentDaoAgency(StudentDao target) { this.target = target; } //在代理类中实现增强原有业务类 public void add() { System.out.println("开启事务...."); target.add();//执行被代理对象的方法 System.out.println("提交事务...."); }}
⑤ 编写测试方法 StudentTest 测试业务类和代理类实现的功能
<pre name="code" class="java">public class StudentTest { public static void main(String[] args) { //原有的方法只能输入一项功能 System.out.println("通过原有业务类处理..."); StudentDao studentDao = new StudentDaoImpl(); studentDao.add(); System.out.println(); //通过代理服务器实现添加功能 System.out.println("通过代理类处理..."); StudentDao studentDaoAgency = new StudentDaoAgency(new StudentDaoImpl()); studentDaoAgency.add(); }}
通过测试我们可以的到一下的结果:
通过原有业务类处理:
执行新增学生的新增....
通过代理类处理:
开启事务....
执行新增学生的新增....
提交事务....
到这里代理类实现了增强业务功能但是不改变原有的代码,希望能够帮助到你理解代理类的用法及其功能!!
0 0
- 使用代理类增强业务类的功能示例
- 使用.Net代理模式做类的增强
- SD功能增强业务说明书
- FI功能增强业务说明书
- 业务逻辑层JDBC模板代码(使用Manager代理类,具有控制事务和管理connection功能)
- TFunc业务功能类
- SQ项目-MM功能增强业务说明书
- 采用动态代理的方式对一个类进行增强
- 使用ISAPI过滤器增强IIS的功能
- VitualBox CentOS增强功能的安装使用
- 一个功能增强型用ADO访问数据库的类
- 增强了很多功能的一个dib类
- 为Code::Blocks的类浏览器增强代码识别功能
- 使用动态代理实现对request和response的增强
- CGlib的动态代理使用示例
- 使用Castle做类的增强
- 使用Unity做类的增强
- 使用Autofac做类的增强
- 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(二)菜单导航
- Aerospike C客户端手册———Ubuntu 12 安装
- MyBatis的动态SQL详解
- Android Wifi密码查看器实现思路
- EditPlus如何实现自动换行
- 使用代理类增强业务类的功能示例
- Core Animation之多种动画效果
- ##单纯形法##
- 黑马程序员_日记45_TreeSet第二种排序方式Comparator
- 使用FileUpload组件实现文件上传
- 自定义UITextView
- android强引用 软引用 弱引用 虚引用
- sd卡照片清除用什么软件可以找回
- java运行时多态性的实现