public class ReportManagerFactory {
Map<String IReportManager> financialReportManager=
new HashMap<String IReportManager>()
Map<String IReportManager> employeeReportManager=
new HashMap<String IReportManager>()
IReportManager getFinancialReportManager(String tenantId){
//通过租户ID
//获取享元
IReportManager r=financialReportManagerget(tenantId)
if(r==null){
r=new FinancialReportManager(tenantId)
financialReportManagerput(tenantId r) //维护已创建的
//享元对象
}
return r;
}
IReportManager getEmployeeReportReportManager(String tenantId){
//通过租户ID
//获取享元
IReportManager r=employeeReportManagerget(tenantId)
if(r==null){
r=new EmployeeReportManager(tenantId)
employeeReportManagerput(tenantId r) //维护已创建的
//享元对象
}
return r;
}
}
使用享元模式的方法如下
public static void main(String[] args) {
ReportManagerFactory rmf=new ReportManagerFactory()
IReportManager rm=rmfgetFinancialReportManager(A)
Systemoutprintln(rmcreateReport())
}
ReportManagerFactory作为享元工厂以租客的ID为索引维护了一个享元对象的集合它确保相同租客的请求都返回同一个享元实例确保享元对象的有效复用
返回目录Java程序性能优化让你的Java程序更快更稳定
编辑推荐
Java程序设计培训视频教程
JEE高级框架实战培训视频教程
JME移动开发实战教学视频
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLEG数据库开发优化指南
[] []