美文网首页
代理模式

代理模式

作者: 东南枝下 | 来源:发表于2021-09-26 20:42 被阅读0次

代理模式

三个角色

图片.png

抽象主题(Subject)角色

真实主题和代理主题的共同接口,以便在任何可以使用真实主题的地方都可以使用代理主题

/**
 * @author Jenson
 */
public interface Subject {

    /**
     * 定义一个请求方法
     */
    public void request();
}

代理主题(Proxy Subject)角色

该角色负责控制对真实主题的引用,负责在需要的时候创建或删除真实主题对象,并且在真实主题角色处理完毕前后做预处理和善后处理工作

/**
 * @author Jenson
 */
@Data
public class ProxySubject implements Subject {

    private Subject subject;

    public <T extends Subject> ProxySubject(Class<T> c) throws IllegalAccessException, InstantiationException {
        this.subject = c.newInstance();
    }

    public void request() {
        this.doSomethingBeforeRequest();
        subject.request();
        this.doSomethingAfterRequest();
    }

    private void doSomethingBeforeRequest(){
        System.out.println("Do Something Before Request...");
    }
    private void doSomethingAfterRequest(){
        System.out.println("Do Something After Request...");
    }
}

真实主题(Real Subject)角色

业务逻辑的具体执行者

/**
 * @author Jenson
 */
@Data
public class RealSubject implements Subject {
    public void request() {
        System.out.println("一条只需要关注自身业务的逻辑");
    }
}


调用

/**
 * @author Jenson
 */
public class ProxyMain {
    public static void main(String[] args) throws InstantiationException, IllegalAccessException {
        Subject subject = new ProxySubject(RealSubject.class);
        subject.request();
    }
}

代理模式的优点

  • 职责清晰
    只需关注具体的业务逻辑而不必要关心非本职事务
  • 高扩展性
    具体角色可随时变化
  • 智能化
    不懂...

SpringAOP 典型的动态代理

相关文章

  • 设计模式

    单例模式 模板方法模式 工厂模式 代理模式 静态代理 JDK动态代理

  • 设计模式

    单例模式 代理模式 静态代理 jdk动态代理 cglib动态代理 工厂模式 适配器模式 建造者模式 观察者模式

  • kube-proxy的3种模式

    userspace代理模式 iptables代理模式 IPVS代理模式 https://kubernetes.io...

  • 第4章 结构型模式-代理模式

    一、代理模式简介 二、代理模式3个角色 三、代理模式的优点 四、代理模式的实例(游戏代练)

  • 理解代理模式

    原创博客地址 简介 代理模式,也叫做委托模式,分为:静态代理动态代理 代理模式也是平时比较常用的设计模式之一,代理...

  • 结构型 代理模式(文末有项目连接)

    1:什么是代理模式 2:没用代理模式时的实例 3:使用代理模式将其解耦(静态代理) 3:使用代理模式将其解耦(动态...

  • 设计模式-动态代理模式

    之前介绍了代理模式,大家也都了解了代理模式,不过之前介绍的代理模式是静态代理,静态代理什么意思?静态代理指的是代理...

  • 代理模式

    一、什么是代理模式 代理模式(Proxy pattern):代理模式又叫委托模式,是为某个对象提供一个代理对象,并...

  • 设计模式之代理模式(Proxy模式)

    代理模式的引入 代理模式的实例程序 代理模式的分析 代理模式的引入 Proxy是代理人的意思,指的是代替别人进行工...

  • Java设计模式之代理模式

    Java设计模式之代理模式 代理模式 静态代理 动态代理 为什么需要代理 通过代理,我们能够不用知道委托人是谁,而...

网友评论

      本文标题:代理模式

      本文链接:https://www.haomeiwen.com/subject/bfrcnltx.html