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

Posted

篇首语:志高品高,志下品下。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java程序性能优化-享元模式(1)相关的知识,希望对你有一定的参考价值。

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

     享元模式( )

  享元模式是设计模式中少数几个以提高系统性能为目的的模式之一 它的核心思想是 如果在一个系统中存在多个相同的对象 那么只需共享一份对象的拷贝 而不必为每一次使用都创建新的对象 在享元模式中 由于需要构造和维护这些可以共享的对象 因此 常常会出现一个工厂类 用于维护和创建对象

  享元模式对性能提升的主要帮助有两点

  ( )可以节省重复创建对象的开销 因为被享元模式维护的相同对象只会被创建一次 当创建对象比较耗时时 便可以节省大量时间

  ( )由于创建对象的数量减少 所以对系统内存的需求也减小 这将使得GC的压力也相应地降低 进而使得系统拥有一个更健康的内存结构和更快的反应速度

  享元模式的主要角色由享元工厂 抽象享元 具体享元类和主函数几部分组成 它们的功能如表 所示

  表   享元模式角色

  基于以上角色 享元模式的结构如图 所示

  图   享元模式类图

  享元工厂是享元模式的核心 它需要确保系统可以共享相同的对象 一般情况下 享元工厂会维护一个对象列表 当任何组件尝试获取享元类时 如果请求的享元类已经被创建 则直接返回已有的享元类 若没有 则创建一个新的享元对象 并将它加入到维护队列中

  注意 享元模式是为数不多的 只为提升系统性能而生的设计模式 它的主要作用就是复用大对象(重量级对象) 以节省内存空间和对象创建时间

  享元模式的一个典型应用是在SAAS系统中 SAAS即Sofare As A Service 是目前比较流行的一种软件应用模式

  以一个人事管理系统的SAAS软件为例 假设公司甲 乙 丙均为这个SAAS系统的用户 则定义每个公司为这套系统的一个租户 每个公司(租户)又各有 个员工 如果这些公司的所有员工都可以登录这套系统查看自己的收入情况 并且为了系统安全 每个公司(租户)都拥有自己独立的数据库 为了使系统的设计最为合理 在这种情况下 便可以使用享元模式为每个租户分别提供工资查询的接口 而一个公司(租户)下的所有员工可以共享一个查询(因为一个租户下所有的员工数据都存放在一个数据库中 它们共享数据库连接) 这样 系统只需要 个享元实例 就足以应付 个员工的查询请求了 系统的结构如图 所示

  图   享元模式的示例

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

  编辑推荐

       Java程序设计培训视频教程

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

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

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

  Oracle索引技术

cha138/Article/program/Java/gj/201311/27827

相关参考

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

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

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

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

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

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

知识大全 Java程序性能优化-装饰者模式(1)

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

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

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

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

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

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

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

知识大全 Java程序性能优化-观察者模式(1)[1]

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

知识大全 Java程序性能优化-Value Object模式(1)[1]

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

知识大全 Java程序性能优化-观察者模式(1)[2]

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