结构型设计模式之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("我是客户要租房。。。。。");
    }
}
相关推荐
老王以为13 小时前
深入理解 AbortController:从底层原理到跨语言设计哲学
javascript·设计模式·node.js
likerhood14 小时前
抽象工厂设计模式(Abstract Factory Pattern)
设计模式
张涛酱10745614 小时前
AskUserQuestionTool 深入解析:构建人机协作的交互桥梁
spring·设计模式·ai编程
Duang14 小时前
AI 真能自己写出整个 Windows 系统吗?我做了一场无监督实验
算法·设计模式·架构
t***54415 小时前
能否给出更多现代C++设计模式的示例
开发语言·c++·设计模式
t***54416 小时前
这些设计模式在现代C++中如何应用
java·c++·设计模式
我爱cope19 小时前
【从0开始学设计模式-8| 桥接模式】
java·设计模式·桥接模式
AI大法师21 小时前
从 Firefox Kit 看懂品牌升级的正确顺序
大数据·人工智能·设计模式·firefox
天若有情67321 小时前
原创C++设计模式:功能归一化——无继承、轻量版AOP,比传统OOP更优雅
开发语言·c++·设计模式·oop
Rsun045511 天前
8、Java 代理模式从入门到实战
java·系统安全·代理模式