zoukankan      html  css  js  c++  java
  • 代理模式

    一.作用:为其他对象提供一种代理以控制对这个对象的访问。

    二.代码

    1.要被代理的目标接口
    1 package design.proxy;
    2 
    3 public interface Target {
    4     void action();
    5 }
    2.被代理目标的实现类A
     1 package design.proxy;
     2 
     3 public class TargetImplA implements Target{
     4 
     5     @Override
     6     public void action() {
     7         // TODO Auto-generated method stub
     8         System.out.println("这是代理目标的实现类A。。");
     9     }
    10 
    11 }
    3.代理类A也实现了目标接口,这样代理类A就可以代理任意目标接口的实现类,这里代理类A专门代理目标接口的实现类A
     1 package design.proxy;
     2 
     3 public class ProxyA implements Target{
     4     private Target target;
     5     public ProxyA(){
     6         System.out.println("这是代理类A。。");
     7         this.target = new TargetImplA();
     8     }
     9     
    10     public void action(){
    11         System.out.println("---代理开始---");
    12         target.action();
    13         System.out.println("---代理结束---");
    14     }
    15 }
    4.测试类
    1 package design.proxy;
    2 
    3 public class Test {
    4     public static void main(String[] args) {
    5         Target target = new ProxyA();
    6         target.action();
    7     }
    8 }
    5.结果

    这是代理类A。。
    ---代理开始---
    这是代理目标的实现类A。。
    ---代理结束---

    三.代理模式和装饰模式的区别:

    从代理类和装饰类可以看出,它们的最大区别就是代理模式由代理类创建目标对象,而装饰类需要传入目标对象。

  • 相关阅读:
    Mybatis传入list的注意点
    synchronized锁
    手撸红黑树
    Vue cdn加速配置
    多线程之BlockingQueue中 take、offer、put、add的一些比较
    线程池
    ThreadLocal
    jdk LocalDateTime mybatis 空指针解决办法
    不同对象中 类型与属性名的属性 进行数据转换
    HashMap 的put方法
  • 原文地址:https://www.cnblogs.com/fenglanglang/p/6021904.html
Copyright © 2011-2022 走看看