public class ReportService {
private ReportGenerator generator = new PdfReportGenerator();
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);
}
}
public interface ReportGenerator {
public void generate(int[][] data);
}
public class HtmlReportGenerator implements ReportGenerator{
public void generate(int[][] data) {
System.out.println("HtmlReportGenerator");
}
}
public class PdfReportGenerator implements ReportGenerator {
public void generate(int[][] data) {
System.out.println("PdfReportGenerator");
}
}
这种设计,高层的ReportService依赖了底层的PdfReportGenerator和ReportGenerator类,还不是很好,一旦希望使用HtmlReportGenerator,那么就必须修改ReportService类。
分享到:
相关推荐
类设计方法大全!类设计方法大全!类设计方法大全!类设计方法大全!
设计一个Person类,有Person类派生一个Student类和一个Teacher类,Student类包括姓名,编号,和成绩。Teacher类包括姓名,编号,职务和部门。又要用的来下载啊,希望对你有所帮助。
设计一个产品类 Product ,允许通过如下方式来创建产品对象: 通过指定产品名创建; 通过指定产品名和产品价格创建; 通过指定产品名、产品价格、出厂日期(对象成员)创建; Product 还应该包含如下属性:生产厂家...
题目:设计基类点类(Point)、直接派生类圆类(Circle)、间接派生类圆柱体类(Cylinder),将求面积的函数(area)声明成虚函数,并在主函数实现虚函数调用,输出点类、圆类和圆柱体类面积。提示:其他数据成员和...
本设计通过定义字符串类,实现了对字符串的赋值、连接、复制、查找、交换操作,提供了一个基本的字符串类设计方案,为后续的开发和应用提供了参考和借鉴。 六、参考文献 * C++ Primer Plus(第五版) * C++程序...
设计一个Triangle类,通过运算符重载来实现两个三角形的面积相加。 operator + (const Triangle& t1,const Triangle& t2); 如对你有用的话,希望你来下载啊。
本文档“Java面向对象设计最佳实践—内置类设计”深入探讨了如何利用Java的内置类机制来优化代码结构,提高可读性和可维护性。以下是基于这个主题的详细知识点: 1. **内置类(Inner Classes)的概念**: 内置类...
1. 设计学类概述 设计学类专业是以设计行为为对象,研究设计发生及开展的规律,生活的各个领域,设计学因此而成为设计应用与传播的创新。现代设计日益广泛地渗透于社会生产与学科。设计学培养具有强烈的责任意识、...
本篇将深入探讨工厂模式在Java中的实现以及类设计图的应用。 首先,我们来看简单工厂模式。它是一种静态工厂,通常包含一个静态方法,用于根据输入参数返回所需类型的实例。简单工厂模式的优点在于易于使用,但缺点...
三类调查设计又称森林采伐和更新调查设计,是林业木材生产和经营的重要基础。本文提供内蒙大兴安岭林区三类调查设计技术规范,希望能给您的工作带来帮助。
设计一个Personal类: (1)该类有实例变量(属性)name、age、sex; (2)一个无参构造函数和一个有参构造函数; (3)一组用于访问实例变量的set/get方法。 再设计一个测试类TestPersonal,测试该类。
材料类毕业设计.docx
科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板
Delphi运行时设计类是Delphi编程中一个高级的话题,它允许开发者在程序运行时动态地创建、修改和管理界面控件。这类技术通常用于构建高度可定制的应用程序或者为其他开发者提供设计工具。以下是对这个主题的详细阐述...
矩阵计算类设计: 按照《线性代数》和《数值算法》中的理论和方法编程实现矩阵计算类(注:完成加、 减、乘、转置和求逆计算),要求重载“+”、“-”、“*”运算符,实现矩阵对象的直 接四则运算。
设计类专业毕业论文答辩PPT模板.pptx,模板概述该PPT共计31页,颜色以蓝色为主。详细介绍该PPT分为5个 章节,分别为“绪论”、“理论综述”、“发展现状与问题分析”、“改进对策以及建议”、“结论”。如果你
同时为有关类设计构造函数、 成员数据设置/提取操作函数、顶点显示函数及周长与面积计算函数,其中顶点 显示函数及周长与面积计算函数在平面图形类中应定义为纯虚函数。在主函数中,分别创建各类对象,调用和执行...
winform窗体继承泛型类时,设计器无法使用解决办法: 当我们使用winform程序时,winform窗体程序和控件程序都是可以通过设计器进行控件拖拽的,但如果我们继承了一个带有泛型的form基类.那么设计器是无法使用的.
1. **响应式设计**:尽管不是传统的Web应用,但我们可以借鉴Web的响应式布局,确保界面在不同分辨率和屏幕尺寸上都能良好显示。 2. **颜色和字体选择**:使用现代、流行的颜色方案和易于阅读的字体,以提升用户体验...