结构型设计模式之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("我是客户要租房。。。。。");
    }
}
相关推荐
季鸢2 小时前
Java设计模式之观察者模式详解
java·观察者模式·设计模式
蔡蓝2 小时前
设计模式-迪米特法则
设计模式·log4j·迪米特法则
Gixy7 小时前
聊聊纯函数与不可变数据结构
前端·设计模式
Java菜鸟、7 小时前
设计模式(代理设计模式)
java·开发语言·设计模式
何中应8 小时前
【设计模式-3.7】结构型——组合模式
java·设计模式·组合模式
magic 2458 小时前
Java设计模式之观察者模式详解
观察者模式·设计模式
秋田君12 小时前
深入理解JavaScript设计模式之闭包与高阶函数
开发语言·javascript·设计模式
何中应14 小时前
【设计模式-4.11】行为型——解释器模式
java·设计模式·解释器模式
WispX88815 小时前
【设计模式】门面/外观模式
java·开发语言·设计模式·系统架构·外观模式·插件·架构设计
蔡蓝15 小时前
设计模式-外观模式
microsoft·设计模式·外观模式