知识大全 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) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java程序性能优化-业务代理模式(2)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
Java程序性能优化-业务代理模式(1)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这
Java程序性能优化-观察者模式(1)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! pu
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) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java程序性能优化-业务代理模式(2)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! i
Java程序性能优化-单例模式(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!