Java教程Java设计模式之虚拟代理模式.docx

上传人:scccc 文档编号:12560852 上传时间:2021-12-04 格式:DOCX 页数:6 大小:12.69KB
返回 下载 相关 举报
Java教程Java设计模式之虚拟代理模式.docx_第1页
第1页 / 共6页
Java教程Java设计模式之虚拟代理模式.docx_第2页
第2页 / 共6页
Java教程Java设计模式之虚拟代理模式.docx_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java教程Java设计模式之虚拟代理模式.docx》由会员分享,可在线阅读,更多相关《Java教程Java设计模式之虚拟代理模式.docx(6页珍藏版)》请在三一文库上搜索。

1、Java 教程 :Java 设计模式之虚拟代理模式虚拟代理模式 (Virtual Proxy) 是一种节省内存的技术,它建议创 建那些占用大量内存或处理复杂的对象时,把创立这类对象推迟到使 用它的时候。在特定的应用中,不同局部的功能由不同的对象组成, 应用启动的时候,不会立即使用所有的对象。在这种情况下,虚拟代 理模式建议推迟对象的创立直到应用程序需要它为止。对象被应用第 一次引用时创立并且同一个实例可以被重用。这种方法优缺点并存。优点: 这种方法的优点是,在应用程序启动时,由于不需要创立和 装载所有的对象,因此加速了应用程序的启动。缺点:因为不能保证特定的应用程序对象被创立,在访问这个对象

2、的任何地方, 都需要检测确认它不是空 (null) 。也就是, 这种检测的时 间消耗是的缺点。应用虚拟代理模式,需要设计一个与真实对象具有相同接口 的单独对象(指虚拟代理)。不同的客户对象可以在创立和使用真实对 象地方用相应的虚拟对象来代替。虚拟对象把真实对象的引用作为它 的实例变量维护。代理对象不要自动创立真实对象,当客户需要真实 对象的效劳时,调用虚拟代理对象上的方法,并且检测真实对象是否 被创立。如果真实对象已经创立,代理把调用转发给真实对象,如果 真实对象没有被创立:1) 代理对象创立真实对象2) 代理对象把这个对象分配给引用变量。3) 代理把调用转发给真实对象 按照这种安排,验证对象

3、存在和转发方法调用这些细节对于 客户是不可见的。客户对象就像和真实对象一样与代理对象进行交互。 因此客户从检测真实对象是否为 null 中解脱出来, 另外,由于创立代 理对象在时间和处理复杂度上要少于创立真实对象。因此,在应用程 序启动的时候,用代理对象代替真实对象初始化。例子:假设我们建立一个 JAVA 程序的集成开发环境( Integrated Development Environment ),这个环境包括三个功能: 编译、运行、 生成 JavaDoc 文档。在新建和编辑 Java 程序时,最为常用的是编译 和运行。至于生成 JavaDoc 文档对于每一个 Java 程序不是必需的。 因

4、此,在 Java 开发环境启动时, 不要创立和装载实现集成开发环境全 部功能的所有对象,仅创立那些在编辑、编译、运行时用到的对象, 保存提供生成 JavaDoc 文档的对象, 这是一个好的设计思想。 这种对 象创立策略能够高效地利用内存空间并且加快了集成开发环境的启动 速度。假设编译、 运行、生成 JavaDoc 文档这些功能分别由三个工 具类提供 ?Compiler 、 Runtime 和 JavaDoc 。客户对象可以访问的不同 IDE 操作的接口以抽象类 IDEOperation 的形式定义 public abstract class IDEOperation private Compi

5、ler cmp;private Runtime rtime;public void compile(String javaFile) cmp pile(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();类 IDEOperation

6、 提供了编译、运行 java 程序方法的实现, 作为它构造函数的一局部, 考试 ,大提示 IDEOperation 创立和装载了 进行编译和执行操作的 Compiler 和 Runtime 对象。生成 JavaDoc 文档的方法 generateDocs 方法被设计成抽象的方法,由它的子类来 实现。让我们定义抽象类 IDEOperation 的一个具体子类RealProcessor 。作为 RealProcessor 构造函数的一局部,创立 JavaDoc 对象来提供生成 JavaDoc 文档的效劳,通过使用 JavaDoc 对象功能实现 generateDocs 方法。public clas

7、s RealProcessor extends IDEOperation JavaDoc jdoc;public RealProcessor() super();jdoc = new JavaDoc();public void generateDocs(String javaFile) jdoc.generateDocs(javaFile);通过上面的实现, RealProcessor 类包含了编译、运行和生 成 JavaDoc 文档的所有功能。像我们原来讨论的,生成 JavaDoc 文 档的功能不是每一个 Java 程序所必须的,当 RealProcessor 实例化 的时候,包括负责生成

8、JavaDoc 文档的 JavaDoc 对象的一系列对象 被创立。推迟创立 JavaDoc 对象有以下优点:1 ) 加速了 RealProcessor 对象的创立时间,因为它的构造 函数创立的很少的对象。2) 高效地利用内存,因为在不需要对象效劳的时候,不需要把对象保持在内存中在不改变 RealProcessor 实现的前提下,可以通过定义 IDEOperation 的另外一个子类 ProxyProcessor 来实现虚拟代理。因 为 RealProcessor 和 ProxyProcessor 共享相同的接口,客户对象可 以用 ProxyProcesso【Word是学生和职场人士最常用的一款

9、办公软件之一,99.99% 的人知道它,但其实,这个软件背后,还有一大批隐藏技能你不知道。掌握他们,你将开启新世界的大门。Tab+Enter,在编过号以后,会自动编号段落Ctrl + D 调出字体栏,配合 Tab+Enter 全键盘操作吧Ctrl + L 左对齐, Ctrl + R 右对齐, Ctrl + E 居中Ctrl + F 查找,Ctrl + H 替换。然后关于替换,里面又大有学问!有时候Word文档中有许多多余的空行需要删除,这个时候我们可以完全可以用查找替换来轻松解决。翻开 编辑菜单中的 替换对话框,把光标定位在 查找内容输入框中,单击 高级按钮,选择 特 殊字符中的 段落标记两次,在输入框中会显示“ "PAP',然后在 替换为输入框中用上面的方法插入一个段落标记个“AP,再按下全部替换按钮。这样多余的空行就会被删除。Ctrl + Z 是撤销,那复原呢?就是 Ctrl + Y ,撤销上一步撤销!比方我输入abc,按一下F4,就会自动再输入一遍 abc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1