`
默默的小熊
  • 浏览: 235933 次
社区版块
存档分类
最新评论

类设计1

 
阅读更多

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类。

分享到:
评论

相关推荐

    类设计方法大全!

    类设计方法大全!类设计方法大全!类设计方法大全!类设计方法大全!

    射频功放设计-E类功放分析与设计.rar

    本文将围绕"射频功放设计-E类功放分析与设计"这一主题,详细阐述E类功放的工作原理、设计挑战及优化策略。 E类功放,又称为开关模式功率放大器,其工作状态位于线性区和截止区之间,主要利用开关器件(如MOSFET或...

    产品类Product的设计

    设计一个产品类 Product ,允许通过如下方式来创建产品对象: 通过指定产品名创建; 通过指定产品名和产品价格创建; 通过指定产品名、产品价格、出厂日期(对象成员)创建; Product 还应该包含如下属性:生产厂家...

    C# 同步Socket TCP/UDP 封装类

    1. 类设计:通常会创建一个自定义的Socket类,如TcpSocket和UdpSocket,封装Socket的基本操作,如连接、断开、发送和接收数据,以及错误处理等。 2. 数据传输:在封装类中,可以设计方法用于包装和解包数据,例如将...

    设计基类点类(Point)、直接派生类圆类(Circle)、间接派生类圆柱体类(Cylinder),将求面积的函数(area)声明成虚函数,并在主函数实现虚函数

    题目:设计基类点类(Point)、直接派生类圆类(Circle)、间接派生类圆柱体类(Cylinder),将求面积的函数(area)声明成虚函数,并在主函数实现虚函数调用,输出点类、圆类和圆柱体类面积。提示:其他数据成员和...

    C++课程设计之string字符串类

    本设计通过定义字符串类,实现了对字符串的赋值、连接、复制、查找、交换操作,提供了一个基本的字符串类设计方案,为后续的开发和应用提供了参考和借鉴。 六、参考文献 * C++ Primer Plus(第五版) * C++程序...

    java实验:请设计一个软件包。要求该软件包至少拥有三角形类、正方形类、圆类和正五边形类。每个类都要具有构造方法,而且可以构造任意的一般图形。

    要求该软件包至少拥有三角形类、正方形类、圆类和正五边形类。每个类都要具有构造方法,而且可以构造任意的一般图形。例如:要求通过三角形类的构造方法可以创建在任意位置上的一般三角形。要求每个类都含有计算该...

    C++本科毕业设计C++程序设计类课程教学辅助系统的设计与实现源码.zip

    C++本科毕业设计C++程序设计类课程教学辅助系统的设计与实现源码。附演示视频。C++本科毕业设计C++程序设计类课程教学辅助系统的设计与实现源码。附演示视频。C++本科毕业设计C++程序设计类课程教学辅助系统的设计与...

    历年全国大学生电子设计竞赛控制类题目汇总

    ### 历年全国大学生电子设计竞赛控制类题目解析 #### 水温控制系统(1997年) **设计任务概述:** 本题目要求设计并制作一个水温自动控制系统,该系统需能够控制1升净水的温度在一个指定范围内保持稳定。容器材质...

    C++设计人事管理people类

    设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中"出生日期"定义为一个"日期"类内...

    设计一个学生类(CStudent)

    在本示例中,我们正在设计一个名为`CStudent`的C++类,该类用于表示一名学生。这个类包含了学生的基本信息,如注册号(sno)、姓名(sname)以及数学、外语和计算机课程的成绩。以下是`CStudent`类的详细分析: 1. ...

    设计模式之工厂模式Java实现和类设计图

    本篇将深入探讨工厂模式在Java中的实现以及类设计图的应用。 首先,我们来看简单工厂模式。它是一种静态工厂,通常包含一个静态方法,用于根据输入参数返回所需类型的实例。简单工厂模式的优点在于易于使用,但缺点...

    设计类c语言编译器.zip

    设计类c语言编译器.zip设计类c语言编译器.zip设计类c语言编译器.zip设计类c语言编译器.zip设计类c语言编译器.zip设计类c语言编译器.zip设计类c语言编译器.zip设计类c语言编译器.zip设计类c语言编译器.zip设计类c语言...

    设计一个学生类Student和它的一个子类Undergraduate,要求如下

    设计一个学生类Student和它的一个子类Undergraduate,要求如下: 1) Student类有name(姓名)、和age(年龄)属性,一个包含两个参数的构造方法,用于给name和age属性赋值,一个show()方法打印Student的属性信息 2) ...

    大学计算机类程序设计作业.zip

    大学计算机类程序设计作业.zip大学计算机类程序设计作业.zip 大学计算机类程序设计作业.zip大学计算机类程序设计作业.zip 大学计算机类程序设计作业.zip大学计算机类程序设计作业.zip 大学计算机类程序设计作业.zip...

    表2:计算机设计大赛 开发类作品开发文档1

    第一章 需求分析 51.1 产品开发背景 51.2 产品的特色分析 61.3 产品竞品分析 7第二章 概要设计 8系统功能设计 8系统架构设计 8物理架构设计

    请按照以下要求设计一个学生类Student,并进行测试。

    请按照以下要求设计一个学生类Student,并进行测试。 要求如下: 1)Student类中包含姓名、成绩两个属性 2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值. 3)Student类中定义一个无参...

    材料类毕业设计.docx

    材料类毕业设计.docx

    芯片制造技术-芯片设计类技术资料合集.zip

    芯片制造技术-芯片设计类技术资料合集: 18微米芯片后端设计的相关技术.pdf 5--芯片规划与设计(3学时).ppt ASIC芯片设计生产流程.ppt ECO技术在SoC芯片设计中的应用-王巍.pdf ic设计流程工具.docx LDO芯片设计报告及...

    科技类-网页设计模板

    科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板科技类-网页设计模板

Global site tag (gtag.js) - Google Analytics