[java] 23种设计模式之代理模式

代理(Proxy)模式:为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。比如我们在租房子的时候会去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。

租房:

java 复制代码
public interface RentInterface {
     void rent();
}

房东租房:

java 复制代码
public class FangDong implements RentInterface {

    @Override
    public void rent() {
        System.out.println("房东租房");
    }
}

中介代理房东租房:房东作为中介的成员变量

java 复制代码
public class Proxy implements RentInterface{

    private FangDong fangDong;

    public Proxy(FangDong fangDong) {
        this.fangDong = fangDong;
    }

    @Override
    public void rent() {
        fangDong.rent();
    }
}

测试,中介租房,实际就是房东租房。

java 复制代码
public class Test {
    public static void main(String[] args) {
        FangDong fangDong = new FangDong();
        RentInterface proxy =new Proxy(fangDong);
        proxy.rent();
    }
}

打印:房东租房

代理模式的应用场景:

如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法:

  1. 修改原有的方法来适应。这样违反了"对扩展开放,对修改关闭"的原则。
  2. 就是采用一个代理类调用原有的方法,且对产生的结果进行控制。这种方法就是代理模式。

使用代理模式,可以将功能划分的更加清晰,有助于后期维护!

相关推荐
ok!ko1 小时前
设计模式之原型模式(通俗易懂--代码辅助理解【Java版】)
java·设计模式·原型模式
2402_857589361 小时前
“衣依”服装销售平台:Spring Boot框架的设计与实现
java·spring boot·后端
吾爱星辰2 小时前
Kotlin 处理字符串和正则表达式(二十一)
java·开发语言·jvm·正则表达式·kotlin
拉里小猪的迷弟2 小时前
设计模式-创建型-常用:单例模式、工厂模式、建造者模式
单例模式·设计模式·建造者模式·工厂模式
哎呦没2 小时前
大学生就业招聘:Spring Boot系统的架构分析
java·spring boot·后端
编程、小哥哥3 小时前
netty之Netty与SpringBoot整合
java·spring boot·spring
IT学长编程4 小时前
计算机毕业设计 玩具租赁系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·玩具租赁系统
莹雨潇潇4 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
严文文-Chris4 小时前
【设计模式-中介者模式】
设计模式·中介者模式
刷帅耍帅4 小时前
设计模式-中介者模式
设计模式·中介者模式