设计模式——代理模式

代理模式是一种设计模式,用于在不修改原有类的基础上,通过代理类控制对真实对象的访问,以增强功能或保护对象。它有静态代理和动态代理两种形式。静态代理虽然高效,但每个被代理的类都需要对应的代理类,当代理类数量增加时,系统复杂度也随之提高。动态代理则通过JVM在运行时动态创建代理类,降低了系统耦合度,提高了扩展性。JDK代理主要涉及Proxy和InvocationHandler两个核心类,用于实现代理模式。
摘要由CSDN通过智能技术生成

代理模式
为其他对象提供一种代理以控制对这个对象的访问,有时委托类不适合或不能直接引用另一个对象时,代理类就在两方之间起到一个桥梁的作用。代理设计模式符合开闭原则 ,在不修改原有类的基础上,增强原有类的功能逻辑。
代理模式优点:
增强真实对象
保护真是对象
降低系统耦合度,扩展性好
代理模式缺点
代理类使系统设计时的类增多
静态代理: 一个接口,两个类:真实业务类,代理类
静态体现在:代理类和真实类的关系在程序运行前就确定了
在静态代理的实现中,需要定义一个接口,真实业务类和代理类都要实现这个接口,同时在代理类中,要定义一个真实对象的引用,通过构造方法传给代理类对象,然后在调用业务方法时,调用真实类的业务实现

//定义了业务的实现规范
interface Buy {
   
    void buyMac();
    void buyGivenchy();
}
//真实类(委托类)真实业务的实现
class Real implements Buy{
   

    @Override
    public void buyMac() {
   
        System.out.println("buy a mac");
    }

    @Override
    public void buyGivenchy() {
   
        System.out.println("buy a givenchy");
    }
}
//代理类  代理Real类搜集有的功能,并做额外的增强
class ProxyClass implements Buy{
   
//引用接口对象使得代理类可以访问实体
    private Buy buy;
    public 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值