知识大全 Java程序性能优化-代理模式(1)

Posted

篇首语:人有恒心万事成,人无恒心万事崩。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java程序性能优化-代理模式(1)相关的知识,希望对你有一定的参考价值。

Java程序性能优化-代理模式(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     代理模式( )

  代理模式也是一种很常见的设计模式 它使用代理对象完成用户请求 屏蔽用户对真实对象的访问 就如同现实中的代理一样 代理人被授权执行当事人的一些事宜 而无需当事人出面 从第三方的角度看 似乎当事人并不存在 因为他只和代理人通信 而事实上 代理人是要有当事人的授权 并且在核心问题上还需要请示当事人

  在现实中 使用代理的情况很普遍 而且原因也很多 比如 当事人因为某些隐私不方便出面 或者当事人不具备某些相关的专业技能 而需要一个职业人员来完成一些专业的操作 也可能由于当事人没有时间处理事务 而聘用代理人出面

  在软件设计中 使用代理模式的意图也很多 比如因为安全原因 需要屏蔽客户端直接访问真实对象 或者在远程调用中 需要使用代理类处理远程方法调用的技术细节(如RMI) 也可能是为了提升系统性能 对真实对象进行封装 从而达到延迟加载的目的 在本小节中 主要讨论使用代理模式实现延迟加载 从而提升系统的性能和反应速度

   代理模式的结构

  代理模式的主要参与者有 个 如表 所示

  表   代理模式角色

  以一个简单的示例来阐述使用代理模式实现延迟加载的方法及其意义 假设某客户端软件 有根据用户请求 去数据库查询数据的功能 在查询数据前 需要获得数据库连接 软件开启时 初始化系统的所有类 此时尝试获得数据库连接 当系统有大量的类似操作存在时(比如xml解析等) 所有这些初始化操作的叠加 会使得系统的启动速度变得非常缓慢 为此 使用代理模式 使用代理类 封装对数据库查询中的初始化操作 当系统启动时 初始化这个代理类 而非真实的数据库查询类 而代理类什么都没有做 因此 它的构造是相当迅速的

  在系统启动时 将消耗资源最多的方法都使用代理模式分离 就可以加快系统的启动速度 减少用户的等待时间 而在用户真正做查询操作时 再由代理类 单独去加载真实的数据库查询类 完成用户的请求 这个过程就是使用代理模式实现了延迟加载

  注意 代理模式可以用于多种场合 如用于远程调用的网络代理 考虑安全因素的安全代理等 延迟加载只是代理模式的一种应用场景

  延迟加载的核心思想是 如果当前并没有使用这个组件 则不需要真正地初始化它 使用一个代理对象替代它的原有的位置 只要在真正需要使用的时候 才对它进行加载 使用代理模式的延迟加载是非常有意义的 首先 它可以在时间轴上分散系统压力 尤其在系统启动时 不必完成所有的初始化工作 从而加速启动时间 其次 对很多真实主题而言 在软件启动直到被关闭的整个过程中 可能根本不会被调用 初始化这些数据无疑是一种资源浪费 图 显示了使用代理类封装数据库查询类后 系统的启动过程

  图   代理类的工作流程

  若系统不使用代理模式 则在启动时就要初始化DBQuery对象 而使用代理模式后 启动时只需要初始化一个轻量级的对象DBQueryProxy

  系统的结构图如图 所示 IDBQuery是主题接口 定义代理类和真实类需要对外提供的服务 在本例中了定义了实现数据库查询的公共方法request()函数 DBQuery是真实主题 负责实际的业务操作 DBQueryProxy是DBQuery的代理类

       返回目录 Java程序性能优化 让你的Java程序更快 更稳定

  编辑推荐

       Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

       J ME移动开发实战教学视频

  Visual C++音频/视频技术开发与实战

  Oracle索引技术

cha138/Article/program/Java/gj/201311/27834

相关参考

知识大全 Java程序性能优化-业务代理模式(2)[1]

Java程序性能优化-业务代理模式(2)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &

知识大全 Java程序性能优化-业务代理模式(1)[2]

Java程序性能优化-业务代理模式(1)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这

知识大全 Java程序性能优化-代理模式(7)

Java程序性能优化-代理模式(7)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-代理模式(2)

Java程序性能优化-代理模式(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-代理模式(3)

Java程序性能优化-代理模式(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-代理模式(4)

Java程序性能优化-代理模式(4)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-代理模式(5)

Java程序性能优化-代理模式(5)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-代理模式(6)

Java程序性能优化-代理模式(6)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-业务代理模式(2)[2]

Java程序性能优化-业务代理模式(2)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  i

知识大全 Java程序性能优化-享元模式(1)

Java程序性能优化-享元模式(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!