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

Posted

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

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

     享元模式( )

  图 中 ReportManagerFactory为享元工厂 负责创建具体的报表工具 它确保每个公司(租户)下所有的员工 都共享一个具体的享元实例(FinancialReportManager或者EmployeeReportManager) 这样 当公司甲的两个员工登录 进行财务查询时 系统不必为两个员工都新建FinancialReportManager 而可以让他们共享一个FinancialReportManager实例

  通过这个示例 还可以进一步了解享元工厂和对象池的一个重要区别 在一个对象池中 所有的对象都是等价的 任意两个对象在任何使用场景中都可以被对象池中的其他对象代替 而在享元模式中 享元工厂所维护的所有对象都是不同的 任何两个对象间不能相互代替 如本例中 为公司甲创建的FinancialReportManagerA和为公司乙创建的FinancialReportManagerB分别对应了后台各自不同的数据库 因此 两者是不可相互替代的

  注意 享元模式和对象池的最大不同在于 享元对象是不可相互替代的 它们各自都有各自的含义和用途 而对象池中的对象都是等价的 如数据库连接池中的数据库连接

  本例中享元对象接口的实现如下 它用于创建一个报表 即 所有的报表生成类将作为享元对象在一个公司(租户)中共享

  public interface IReportManager

  public String createReport()

  

  以下是两个报表生成的实例 分别对应员工财务收入报表和员工个人信息报表 它们都是具体的享元类

  public class FinancialReportManager implements IReportManager //财务报表

  protected String tenantId=null;

  public FinancialReportManager(String tenantId)          //租户ID

  this tenantId=tenantId;

  

  @Override

  public String createReport()

  return This is a financial report ;

  

  

  public class EmployeeReportManager implements IReportManager //员工报表

  protected String tenantId=null;

  public EmployeeReportManager(String tenantId)               //租户ID

  this tenantId=tenantId;

  

  @Override

  public String createReport()

  return This is a employee report ;

  

  

  最为核心的享元工厂类实现如下 它也是享元模式的精髓所在 它确保同一个公司(租户)使用相同的对象产生报表 这是相当有意义的 否则系统可能会为每个员工生成各自的报表对象 导致系统开销激增

cha138/Article/program/Java/gj/201311/27825

相关参考

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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