代理模式.

定义

由于某些原因需要给某对象提供一个代理以控制对该对象的访问,这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。

架构

抽象主题类、真实主题类、代理类

分类

{静态代理:手动创建代理类
{动态代理:使用反射动态创建

作用

保护真实对象,增强真实对象

代码

在这里插入图片描述
Subject(抽象主题)

/**
 * 代理类和目标类共同实现的接口
 */
public interface Subject {

    void show();

}

Target(真实主题)

/**
 *
 * Description:
 *
 * @author: mushi
 * @Date: 2021/2/5 13:48
 */
public class Target implements Subject {
    @Override
    public void show() {
        System.out.println("我是真实对象");
    }
}

Proxy(代理)

/**
 *
 * Description:
 *
 * @author: mushi
 * @Date: 2021/2/5 13:48
 */
public class Proxy implements Subject {

    private Target target = new Target();

    /**代理方法*/
    @Override
    public void show() {
        before();
        target.show();
        after();
    }


    /**方法增强*/
    public void before(){

    }

    public void after(){

    }
}

Test

public class Test {
    public static void main(String[] args) {
        Proxy proxy = new Proxy();
        proxy.show();
    }
}

总结

代码实现的是静态代理的方式,
代理类和目标类实现共同的接口,在调用目标对象的时候可以通过代理对象去访问,代理类中还可以对目标对象具体方法执行前后做方法增强。
简单点说,在一个C中创建B对象,A想访问B,A可以通过C来访问B。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值