代理模式.

前言:

为什么要学习代理模式,因为AOP的底层机制就是动态代理!

代理模式:

静态代理

动态代理

静态代理

抽象角色 : 一般使用接口或者抽象类来实现

真实角色 : 被代理的角色

代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 .

客户 : 使用代理角色来进行一些操作

Rent . java 即抽象角色

java 复制代码
//抽象角色:租房
public interface Rent {
    public void rent();
}

Host . java 即真实角色

java 复制代码
//真实角色: 房东,房东要出租房子
public class Host implements Rent{
    public void rent() {
        System.out.println("房屋出租");
    }
}

Proxy . java 即代理角色

java 复制代码
//代理角色:中介
public class Proxy implements Rent {
    private Host host;
    public Proxy() { }
    public Proxy(Host host) {
        this.host = host;
    }
    //租房
    public void rent(){
        seeHouse();
        host.rent();
        fare();
    }
    //看房
    public void seeHouse(){
        System.out.println("带房客看房");
    }
    //收中介费
    public void fare(){
        System.out.println("收中介费");
    }
}

Client . java 即客户

java 复制代码
//客户类,一般客户都会去找代理!
public class Client {
    public static void main(String[] args) {
        //房东要租房
        Host host = new Host();
        //中介帮助房东
        Proxy proxy = new Proxy(host);
        //你去找中介!
        proxy.rent();
    }
}

分析: 在这个过程中,你直接接触的就是中介,就如同现实生活中的样子,你看不到房东,但是你依旧租到了房东的房子通过代理,这就是所谓的代理模式,程序源自于生活,所以学编程的人,一般能够更加抽象的看待生活中发生的事情。

相关推荐
qq_三哥啊1 天前
【mitmproxy】通过 mitmproxy 的HTTP代理模式获取 OpenCode 发起的 AI API 请求的详细信息
网络·http·代理模式
AI人工智能+电脑小能手2 天前
【大白话说Java面试题】【Java基础篇】第30题:JDK动态代理和CGLIB动态代理有什么区别
java·开发语言·后端·面试·代理模式
AI人工智能+电脑小能手4 天前
【大白话说Java面试题】【Java基础篇】第29题:静态代理和动态代理的区别是什么
java·开发语言·后端·面试·代理模式
qq_三哥啊5 天前
【mitmproxy】提取 OpenCode 的 API 接口
网络·代理模式
qq_三哥啊5 天前
【mitmproxy】通过 mitmproxy 的本地捕获代理模式获取 OpenCode 发起的 AI API 请求的详细信息
网络·系统安全·代理模式
fengfuyao9858 天前
MATLAB实现自适应动态规划(ADP)方法
matlab·动态规划·代理模式
geovindu11 天前
go: Proxy Pattern
开发语言·后端·设计模式·golang·代理模式
我爱cope15 天前
【从0开始学设计模式-12| 代理模式】
设计模式·代理模式
两年半的个人练习生^_^16 天前
每日一学:设计模式之代理模式
java·设计模式·代理模式
天若有情67317 天前
用动态规划思路,一步一步实现响应式数据(从本质到落地)
算法·动态规划·代理模式