java软件体系结构设计模式----虚代理

说明:

虚代理是一种节省内存的技术,以便确保对象只有在被调用到的时候才得到创建,尤其是这样的对象创建需要大量的内存消耗或者其他资源


优点:

程序启动快,应为在启动时不需要创建或者加载所有的应用对象。

缺点:

应为无法确认一个对象是否已经创建。每次访问它的时候都要先检查来确保它已经非空(即已经创建)


实例:

假设读者为java语言开发一个IDE来实现编译,执行和javadoc文档生成的工作。在大部分情况下,当Java程序被创建或修改时,它会被编译和执行,但不是

每个java程序都需要生成文档。


代码:

public abstract class IDEOperation {
  private Compiler cmp;
  private Runtime rtime;


  public void compile(String javaFile) {
    cmp.compile(javaFile);
  }


  public void run(String classFile) {
    rtime.run (classFile);
  }


  //to be delayed until needed.
  public abstract void generateDocs(String javaFile);




  public IDEOperation() {
    cmp = new Compiler();
    rtime = new Runtime();
  }
}


class Compiler {


  public void compile(String javaFile) {
    //
  }
}


class Runtime {


  public void run(String classFile) {
    //
  }
}


public class RealProcessor extends IDEOperation {
  JavaDoc jdoc;
  public RealProcessor() {
    super();
    jdoc = new JavaDoc();
  }
  public void generateDocs(String javaFile) {
    jdoc.generateDocs(javaFile);
  }
}
class JavaDoc {


  public void generateDocs(String javaFile) {
    //
  }
}


public class ProxyProcessor extends IDEOperation {
  private RealProcessor realProcessor;


  public void generateDocs(String javaFile) {
    /*
     In order to generate javadocs
     the proxy loads the actual object and
     invokes its methods.
     */


    if (realProcessor == null) {
      realProcessor = new RealProcessor();
    }
    realProcessor.generateDocs(javaFile);
  }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值