java软件体系结构设计模式----虚代理
来源:互联网 发布:java的scanner类 编辑:程序博客网 时间:2024/05/10 05:31
说明:
虚代理是一种节省内存的技术,以便确保对象只有在被调用到的时候才得到创建,尤其是这样的对象创建需要大量的内存消耗或者其他资源
优点:
程序启动快,应为在启动时不需要创建或者加载所有的应用对象。
缺点:
应为无法确认一个对象是否已经创建。每次访问它的时候都要先检查来确保它已经非空(即已经创建)
实例:
假设读者为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);
}
}
- java软件体系结构设计模式----虚代理
- java软件体系结构设计模式----代理
- java软件体系结构设计模式----rmi远程代理
- java软件体系结构设计模式----装饰者
- java软件体系结构设计模式----适配器
- java软件体系结构设计模式------责任链
- java软件体系结构设计模式----外观
- Java软件体系结构设计模式之结构模式 知识点摘录
- java软件体系结构设计模式-------对象缓存器
- java软件体系结构模式----桥接
- 软件体系结构与设计模式笔记
- 关于软件体系结构设计模式的总结
- java软件体系结构模式---集合模式
- java 代理设计模式
- java代理设计模式
- java 代理设计模式
- Java设计模式:代理
- Java代理设计模式
- Oracle和DB2锁的 比较
- 程序员的一生
- TinyOS Tutorials——1.1 Getting Started with TinyOS
- Visual Studio使用小技巧1 – HTML编辑器中的格式化
- 牛人博客必看
- java软件体系结构设计模式----虚代理
- Visual Studio使用小技巧2 – 使用任务列表(task list)
- 异步IO网络服务器设计(四) 会话生存期管理
- WebService基础
- apache rewrite 笔记1
- Visual Studio使用小技巧3 – 标签分组(Tab Group)和分割窗口(Split window)
- 另类MDX学习(转)
- 品质在于构建过程吗?
- 性能测试基础