有了前面的学习,现在该是解决ReportService和PdfReportService类之间的依赖关系了。
引入新的Container类:
public class Container {
private static final Container _container = new Container();
private Map<String, Object> components;
private Container(){
components = new HashMap<String, Object>();
ReportGenerator generator = new PdfReportGenerator();
components.put("ReportGenerator", generator);
ReportService service = new ReportService();
components.put("ReportService", service);
}
public static Container getInstance(){
return _container;
}
public Object getComponents(String id){
return components.get(id);
}
}
public class ReportService {
// private ReportGenerator generator = new PdfReportGenerator();
private ReportGenerator generator = (ReportGenerator) Container
.getInstance().getComponents("ReportGenerator");
private int[][] data = new int[50][50];
public void generateAnnulReport() {
generator.generate(data);
}
public void generateMonthlyReport() {
generator.generate(data);
}
public void generateDailyReport() {
generator.generate(data);
}
}
这样ReportService就可以重用了,所有的对象管理都在container来管理了。
分享到:
相关推荐
类设计方法大全!类设计方法大全!类设计方法大全!类设计方法大全!
(三角形类)设计一个扩展自抽象类GeometricObject 的新的Triangle 类。绘制Triangle 类和GeometricObject 类的UML图并实现Triangle 类。 编写一个测试程序,提示用户输入三角形的三条边、一种颜色以及一个表明该...
设计一个Person类,有Person类派生一个Student类和一个Teacher类,Student类包括姓名,编号,和成绩。Teacher类包括姓名,编号,职务和部门。又要用的来下载啊,希望对你有所帮助。
本设计通过定义字符串类,实现了对字符串的赋值、连接、复制、查找、交换操作,提供了一个基本的字符串类设计方案,为后续的开发和应用提供了参考和借鉴。 六、参考文献 * C++ Primer Plus(第五版) * C++程序...
设计一个Triangle类,通过运算符重载来实现两个三角形的面积相加。 operator + (const Triangle& t1,const Triangle& t2); 如对你有用的话,希望你来下载啊。
C++本科毕业设计C++程序设计类课程教学辅助系统的设计与实现源码。附演示视频。C++本科毕业设计C++程序设计类课程教学辅助系统的设计与实现源码。附演示视频。C++本科毕业设计C++程序设计类课程教学辅助系统的设计与...
设计一个产品类 Product ,允许通过如下方式来创建产品对象: 通过指定产品名创建; 通过指定产品名和产品价格创建; 通过指定产品名、产品价格、出厂日期(对象成员)创建; Product 还应该包含如下属性:生产厂家...
设计一个包含5个类的Java程序,名为Person的父类有两个子类,学生类Student和员工类Employee。Employee类有两个子类,教师类Faculty和 职员类Staff。所有人都有编号ID、姓名、地址、电话号码和电子邮件地址。学生类...
本文档“Java面向对象设计最佳实践—内置类设计”深入探讨了如何利用Java的内置类机制来优化代码结构,提高可读性和可维护性。以下是基于这个主题的详细知识点: 1. **内置类(Inner Classes)的概念**: 内置类...
2. 开关元件的选择:E类放大器工作时,要求开关元件能承受高电压、电流峰值,并且具有快速的开关速度。因此,通常选择场效应晶体管(FET)作为开关元件。而负载牵引技术可以帮助设计者优化FET的驱动和偏置条件,以...
一类线性系统H2静态输出反馈可靠控制器设计 一类线性系统H2静态输出反馈可靠控制器设计 一类线性系统H2静态输出反馈可靠控制器设计 一类线性系统H2静态输出反馈可靠控制器设计 一类线性系统H2静态输出反馈可靠控制器...
2. 专业类代码和标准 设计学类专业代码为1305,包括艺术设计学、视觉传达设计、环境设计、产品设计、服装与服饰设计、公共艺术、工艺美术、数字媒体艺术、艺术与科技等专业。 3. 培养目标 设计学类专业培养目标是...
### 历年全国大学生电子设计竞赛控制类题目解析 #### 水温控制系统(1997年) **设计任务概述:** 本题目要求设计并制作一个水温自动控制系统,该系统需能够控制1升净水的温度在一个指定范围内保持稳定。容器材质...
本篇将深入探讨工厂模式在Java中的实现以及类设计图的应用。 首先,我们来看简单工厂模式。它是一种静态工厂,通常包含一个静态方法,用于根据输入参数返回所需类型的实例。简单工厂模式的优点在于易于使用,但缺点...
三类调查设计又称森林采伐和更新调查设计,是林业木材生产和经营的重要基础。本文提供内蒙大兴安岭林区三类调查设计技术规范,希望能给您的工作带来帮助。
材料类毕业设计.docx
科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板
收集的各种电子类的毕业设计,网速较满故分批次上传 目录如下 16×16点阵(滚动显示)论文+程序.rar cdma通信系统中的接入信道部分进行仿真与分析.rar LED显示屏动态显示和远程监控的实现.rar MCS-51单片机温度...
Delphi运行时设计类是Delphi编程中一个高级的话题,它允许开发者在程序运行时动态地创建、修改和管理界面控件。这类技术通常用于构建高度可定制的应用程序或者为其他开发者提供设计工具。以下是对这个主题的详细阐述...