结构型设计模式之Proxy(代理)

结构型设计模式之Proxy(代理)

前言:

代理模式,aop环绕通知,动态代理,静态代理 都是代理的一种,这次主要是记录设计模式的代理demo案例,详情请看其他笔记。

1)意图

为其他对象提供一种代理以控制对这个对象的访问。

2)结构

3)适用性

Poxy模式适用于在需要比较通用和复杂的对象指针代替简单的指针的时候,常见情况有:

  • 远程代理(Remote Proxy)为一个对象在不同地址空间提供局部代表。
  • 虚代理(Virtual Proxy)根据需要创建开销很大的对象。
  • 保护代理(Protection Proxy)控制对原始对象的访问,用于对象应该有不同的访问权
    限的时候。
  • 智能引用(Smart Reference)取代了简单的指针,它在访问对象时执行一些附加操作。

代码:

c 复制代码
/**
 * @author psd 结构性设计模式之代理模式
 */
public class ProxyDemo {
    public static void main(String[] args) {
        RealSubject realSubject = new RealSubject();
        Proxy proxy = new Proxy(realSubject);
        proxy.request();
    }
}

interface Subject{
    void request();
}

class Proxy implements Subject{
    protected RealSubject realSubject;
    public Proxy(RealSubject realSubject){
        this.realSubject = realSubject;
    }
    @Override
    public void request() {
        System.out.println("我是中介帮您看房.....");
        realSubject.request();
        System.out.println("我是中介看好房后对接租方和被出租方.....");
    }
}

class RealSubject implements Subject{
    @Override
    public void request() {
        System.out.println("我是客户要租房。。。。。");
    }
}
相关推荐
染指11102 小时前
135.Agent-多Agent框架-LangChain多智能体(SubAgents子代理)
数据库·人工智能·设计模式·langchain·agent·agents
路弥行至1 天前
【Head First 设计模式】第 2 章:观察者模式 —— 用现代 C++ 重新解读“交互对象的松耦合
c++·经验分享·笔记·观察者模式·设计模式·入门教程·headfirst
YYYing.1 天前
【设计模式系列 (九) 】装饰器模式
c++·后端·设计模式·装饰器模式·c/c++
沫璃染墨1 天前
《从零入门Linux系统篇(五十六):线程篇·九——生产者消费者模型:从条件变量到BlockingQueue实现》
linux·服务器·c++·驱动开发·设计模式·架构·系统架构
c萱2 天前
AI产品经理——01基础认知篇
设计模式·prompt·aigc·产品经理·ai编程·gitcode·ai-native
YYYing.2 天前
【设计模式系列 (八) 】组合模式
c++·后端·设计模式·组合模式·c/c++
geovindu3 天前
rust: Composite Pattern
开发语言·后端·设计模式·rust·组合模式
YYYing.3 天前
【设计模式系列 (七) 】桥接模式
c++·后端·设计模式·桥接模式
阿狗童鞋4 天前
设计模式实战指南
设计模式
电子科技圈4 天前
基于车载SerDes和OpenGMSL协议的SoC设计与验证:行业高频问题解析
设计模式·车载系统·软件构建·设计规范