设计模式之静态代理

前言

代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。分为静态代理、动态代理。
静态代理:是由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。

静态代理具体实现

1. 你要做的事情也就是接口

/**
 * @author lane
 * @date 2021年03月22日 下午9:46
 */
public interface FindJob {
    /**
     * 找工作
     * @author lane
     * @date 2021/3/22 下午9:46
     */
    public void find();
}

2. 你具体的实现也就是实现类

/**
 * @author lane
 * @date 2021年03月22日 下午9:47
 */
public class FindJobImpl implements FindJob {
    @Override
    public void find() {
        System.out.println("找啊找啊找工作");
    }
}

3. 代理实现你要做的事情

/**
 * 招聘网代理你的事情
 * @author lane
 * @date 2021年03月22日 下午9:48
 */
public class FindJobProxy implements FindJob{
    private FindJob findJob;

    public FindJobProxy(FindJob findJob){
        this.findJob = findJob;
    }
    @Override
    public void find() {
        System.out.println("登陆招聘网站上传简历");
        findJob.find();
        System.out.println("企业下载你的简历");
    }
}

4. 测试

/**
 * @author lane
 * @date 2021年03月22日 下午9:52
 */
public class Test {

    public static void main(String[] args) {

        FindJob findJob = new FindJobImpl();
        //自己去实现方法
        findJob.find();
        System.out.println("使用静态代理实现:");
        FindJobProxy findJobProxy = new FindJobProxy(findJob);
        //代理实现你的方法
        findJobProxy.find();

    }

}

测试结果

找啊找啊找工作
使用静态代理实现:
登陆招聘网站上传简历
找啊找啊找工作
企业下载你的简历

总结

静态代理一般不怎么用,代理内容一般固定比如事务,如果很多类需要代理就会很麻烦,就需要动态代理了,下篇文章写动态代理具体实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值