Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以pdf、excel等格式制作报表的设计模式是什么_Java_Design Patterns_Factory Pattern_Strategy Pattern - Fatal编程技术网

Java 以pdf、excel等格式制作报表的设计模式是什么

Java 以pdf、excel等格式制作报表的设计模式是什么,java,design-patterns,factory-pattern,strategy-pattern,Java,Design Patterns,Factory Pattern,Strategy Pattern,我有一个学校项目,我们必须在java代码中应用一些设计模式。我必须制作一个功能,其中数据由JPA/Hibernate获取,并以pdf或excel格式呈现。我需要这样做,以便将来可以添加多个文件扩展名 我的问题是,对于这样的pdf/excel报表生成器,什么样的设计模式最适合 我已经看过的设计模式是策略模式和工厂模式(标准、方法和抽象)。看看 它可能适合你的要求,我会有一个不同的PDF和EXCEL文件的视图。当您添加新的文件类型时,您可以添加一个新的视图来处理每种文件类型 控制器是您的用户输入和系

我有一个学校项目,我们必须在java代码中应用一些设计模式。我必须制作一个功能,其中数据由JPA/Hibernate获取,并以pdf或excel格式呈现。我需要这样做,以便将来可以添加多个文件扩展名

我的问题是,对于这样的pdf/excel报表生成器,什么样的设计模式最适合

我已经看过的设计模式是策略模式和工厂模式(标准、方法和抽象)。

看看

它可能适合你的要求,我会有一个不同的PDF和EXCEL文件的视图。当您添加新的文件类型时,您可以添加一个新的视图来处理每种文件类型

控制器是您的用户输入和系统之间的链接,它可能会从您选择要查看的视图

模型本质上就是您希望在报告中显示的数据。这对于pdf或excel报告应该是相同的

该视图可以是创建excel文件的excel视图,也可以是创建pdf文件的pdf视图。两者都使用模型作为输入


<强>假设<强>你有一个用户界面。

问题已被提出,我想你应该考虑其中的一些。这可能是实现特定功能的最佳方式。

您没有给我们太多解释。工厂模式将代码解耦,并为添加新扩展创建可扩展的体系结构。这就是你写的问题所能告诉你的。嗨,保罗,谢谢你的回答。我忘了提到项目是在JPA中创建的,确保创建报告的类必须在JPA的域层中。我不知道MVC是否适合这里。@Tim JPA使用MVC模式应该没有问题。谢谢Paul,我会尝试一下MVC。我不同意。MVC用于用户界面。您实际上描述了工厂模式,为模式的结构提供了另一个名称以匹配MVC模式。这可能会让事情变得混乱……我可能错误地认为存在一个用户界面。当我第一次回答时,我把我的假设作为一个评论。我不知道为什么要删除它:)。