设计模式 - 代理模式

来源:互联网 发布:网络三巨头是什么意思 编辑:程序博客网 时间:2024/06/14 13:19

简介


代理模式是一种很常用的设计模式。在软件设计中,使用代理模式的意图有很多。比如处于安全考虑,屏蔽客户端直接访问真实对象;在远程调用中,使用代理类处理远程方法调用的技术细节;为了提升系统性能,对真实对象进行封装,达到延迟加载的目的;在调用方法的前后增加log输出等等。
代理模式分为4个部分:
  • 主题接口: 定义代理类对外公开的方法接口。
  • 展示主题: 真正实现业务逻辑的类。
  • 代理类: 用来封装真实主题的类。
  • Main: 调用代理类。
代码示例

主题接口IDBQuery.java
package delegate;public interface IDBQuery {    public String request();}

真实主题DBQuery.java
package delegate;public class DBQuery implements IDBQuery {    public DBQuery() {// initialize operation    }    @Override    public String request() {return "request";    }}

代理类DBQueryProxy.java
package delegate;public class DBQueryProxy implements IDBQuery {    private DBQuery realSubject = null;    @Override    public String request() {// lazy initif (realSubject == null)    realSubject = new DBQuery();// do something before invokereturn realSubject.request();// do something after invoke    }}

Main.java
package delegate;public class Main {    public static void main(String[] args) {IDBQuery query = new DBQueryProxy();query.request();    }}



0 0