JAVA设计模式------(七)代理模式
介绍
代理模式和装饰模式还是挺像的。装饰模式是抽象类对装饰对象的实现,在继承装饰对象。代理模式则是直接对代理对象的实现。
理解
代理模式可以看成用一个类代表另一个类,使用代理类时,便会执行被代理对象的功能。
代理模式更多用于前后置条件运用等等,如权限控制、日志记录等。
实现
抽象主题角色
代理类和具体主题角色实现的接口类
            
            
              java
              
              
            
          
          package cn.sh.designepattern;
/**
 * @Author song
 * @Version 0.0.1
 * @Date 2025/4/25 10:11
 * @Contact 643947568@qq.com
 */
public interface Subject {
    public void operate();
}
        具体主题角色
            
            
              java
              
              
            
          
          package cn.sh.designepattern;
/**
 * @Author song
 * @Version 0.0.1
 * @Date 2025/4/25 10:11
 * @Contact 643947568@qq.com
 */
public class RealSubject implements Subject{
    @Override
    public void operate() {
        System.out.println("执行具体操作");
    }
}
        代理类
            
            
              java
              
              
            
          
          package cn.sh.designepattern;
/**
 * @Author song
 * @Version 0.0.1
 * @Date 2025/4/25 10:10
 * @Contact 643947568@qq.com
 */
public class Proxy implements Subject{
    private Subject subject;
    public Proxy(Subject subject) {
        this.subject = subject;
    }
    @Override
    public void operate() {
        System.out.println("前置操作");
        subject.operate();
        System.out.println("后置操作");
    }
}
        测试
            
            
              java
              
              
            
          
          package cn.sh.designepattern;
/**
 * @Author song
 * @Version 0.0.1
 * @Date 2025/4/24 16:33
 * @Contact 643947568@qq.com
 */
public class Main {
    public static void main(String[] args) {
        Proxy proxy = new Proxy(new RealSubject());
        proxy.operate();
    }
}
        应用
权限控制
日志记录
远程访问
缓存代理:缓存对象结果,使得客户端可以共享这些结果。
同步代理:使得几个对象可以同时使用一个对象而不发生冲突。
...