代理模式

描述:引用了中间层,来控制对象

作用:用于管理对方访问,在之前和之后加入操作逻辑,和权限控制。

 

复制代码
/**
 * 主控制类
 * 
 */
public class RealSubject implements Subject{
    @Override
    public void doWork() {
        System.out.println("hello world~~");
    }
}
/**
 * 代理类
 * 
 */
public class RealProxySubject implements Subject{

    RealSubject realSubject;

    public RealProxySubject() {
        try {
            this.realSubject = (RealSubject)this.getClass().getClassLoader().loadClass("net.xdclass.model.RealSubject").newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public void getConnection(){
        System.out.println("确认连接");
    }

    public void getLog(){
        System.out.println("打印日志");
    }

    @Override
    public void doWork() {
        getConnection();
        realSubject.doWork();
        getLog();
    }
}
public interface Subject {

    void doWork();
}
/**
 * 代理模式
 *
 */
public class ProxyPattern {
    public static void main(String[] args) {
        new RealProxySubject().doWork();
    }
}
复制代码

 

posted @   蔡徐坤1987  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2022-04-14 KAFKA报could not be established. Broker may not be available
点击右上角即可分享
微信分享提示