代理模式

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

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

 

/**
 * 主控制类
 * 
 */
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 @ 2024-04-14 07:14  蔡徐坤1987  阅读(9)  评论(0编辑  收藏  举报