[关闭]
@Cesar 2016-01-07T10:05:05.000000Z 字数 1253 阅读 1293

Java中的代理模式

Java

目录

  1. 创建接口
  2. 实例化接口
  3. 创建代理对象
  4. 测试和总结

创建接口

  1. // 创建接口方法
  2. package test0107.te2;
  3. public interface Subject {
  4. public void operate1();
  5. }

实例化接口

  1. package test0107.te2;
  2. public class RealSubject implements Subject{
  3. @Override
  4. public void operate1() {
  5. System.out.println("I am Operate1");
  6. }
  7. }

创建代理类

  1. package test0107.te2;
  2. public class ProxySubject extends RealSubject {
  3. private RealSubject realSubject;
  4. public ProxySubject() {
  5. }
  6. public void operate1() { // 该方法封装了真实对象的operate1方法
  7. preRequest();
  8. if (realSubject == null) {
  9. realSubject = new RealSubject();
  10. }
  11. realSubject.operate1(); // 此处执行真实对象的request方法
  12. postRequest();
  13. }
  14. private void preRequest() {
  15. System.out.println("实现代理后在正式实现方法前我可以做出操作");
  16. }
  17. private void postRequest() {
  18. System.out.println("实现代理后在正式实现方法后我可以做出操作");
  19. }
  20. }

测试和总结

  1. package test0107.te2;
  2. public class Test {
  3. public static void main(String[] args) {
  4. Subject subject = new ProxySubject();
  5. subject.operate1();
  6. }
  7. }

结果如下:

实现代理后在正式实现方法前我可以做出操作
I am Operate1
实现代理后在正式实现方法后我可以做出操作


由此我们可以看出代理的作用:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注