静态代理设计模式

本文详细介绍了静态代理设计模式的概念,包括其优缺点、实现步骤和应用场景。通过具体实例展示了如何设计代理类和真实类来实现接口,以及如何在Java线程设计中应用此模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态代理:由开发者设计代理类,其中代理类的方法和真实类的方法,入参都是一致的,只是方法体不同,代理类和真实类实现相同的接口

优点:解耦合,简单

缺点:代理类和真实类实现相同接口和方法,代码重复,如何接口实现一个新的方法,处理真实类需要实现,代理类也需要进行实现该接口,增加程序代码的复杂度。

静态代理设计模式实现三部曲:

第一步:定义一个共同使用的接口类,供代理类和真实类共同实现

public interface ProxyInfo {
    void MyUtilProxy();
}

第二步:定义真实类和代理类共同实现上面的接口类,

代理类中持有真实类的引用,同时实现真实的需求,

真实类:
public class RealRole implements ProxyInfo {
    @Override
    public void MyUtilProxy() {
        System.out.println("核心业务逻辑方法执行开始");
        System.out.println("核心业务逻辑方法执行结束");
    }
}
代理类:
public class ProxyRole implements ProxyInfo { 
    private RealRole realRole;
    public ProxyRole(RealRole realRole){
        this.realRole = realRole;
    }
    @Override
    public void MyUtilProxy() {
        System.out.println("代理角色的边缘业务逻辑处理");
        realRole.MyUtilProxy();
        System.out.println("代理角色的边缘业务逻辑处理结束");
    }
}

第三步:创建真实类对象和代理类对象,同时将真实类对象的引用传给代理类对象,执行代理类对象的方法

public class StaticProxyPattern {
    public static void main(String[] args) {
        //创建真实对象
        RealRole realRole = new RealRole();
        //创建代理对象
        ProxyRole proxyRole = new ProxyRole(realRole);
        //执行代理对象的增强方法
        proxyRole.MyUtilProxy();
    }
}

 

静态代理设计模式使用场景:java线程的设计就使用了静态代理的设计模式,其中自定义的线程类实现Runable接口,Thread接口也实现了Runable接口,再创建子线程的时候,传入自定义线程类的引用,再通过调用start()方法,调用自定义线程的run()方法,实现线程的并发执行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值