设计模式-代理模式

代理模式:最基础的设计模式,策略模式等都用到代理模式

核心:访问控制

就是将被代理的类作为成员变量。
为其他对象提供一个代理类去使用被代理的类

在这里插入图片描述在这里插入图片描述

  1. 定义一个接口
    首先,我们需要定义一个接口,这是原始对象和代理对象都要实现的接口。
// Subject.java
public interface Subject {
    void request();
}
  1. 实现原始对象
    接下来,实现这个接口的原始对象。
// RealSubject.java
public class RealSubject implements Subject {
    @Override
    public void request() {
        System.out.println("RealSubject: Handling request.");
    }
}
  1. 实现代理对象
    然后,实现这个接口的代理对象。代理对象包含对原始对象的引用,并控制对它的访问。
// Proxy.java
public class Proxy implements Subject {
    private RealSubject realSubject;

    @Override
    public void request() {
        if (realSubject == null) {
            realSubject = new RealSubject();
        }
        System.out.println("Proxy: Logging request before forwarding to RealSubject.");
        realSubject.request();
        System.out.println("Proxy: Logging request after forwarding to RealSubject.");
    }
}
  1. 客户端代码
    最后,使用代理对象来代替直接使用原始对象。
// Client.java
public class Client {
    public static void main(String[] args) {
        Subject proxy = new Proxy();
        proxy.request();
    }
}    

和装饰器模式的区别

如果代理模式的代理类上又实现了要给额外的功能,那么就是装饰器了,新增了功能。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值