gpt4 book ai didi

java - 将多个对象合并为多种格式

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:21:16 34 4
gpt4 key购买 nike

我正在寻找适用于具有多个 DataObject 和多个输出格式(ReportGenerator)的情况的最佳设计。

当前的设置是这样的:有一个 Formattable 接口(interface),它具有 ReportGenerator 使用的各种方法。每个 DataObject(DataObject 可以是几个不同的不相关类中的任何一个)实现 Formattable —— 即,它知道如何为报告,ReportGenerator 只是简单地输入 Formattable 对象,它从中访问 String 数组并美化它们。

1) 所以这是我的第一个问题:这是否可取?因为结果是为报告组织数据的过程散布在所有 DataObject 中。替代方案是一个中间类,其中包含一大堆 instanceof 检查要格式化的 DataObject 类型,但至少这样它们都在一个地方。

2) 然后我的新问题是我需要引入一个辅助 ReportGenerator,它需要组织略微不同的 DataObject 数据。在当前的设置中,我可以在 Formattable 方法上引入一个参数来指定 DataObject 应该为哪种类型的 ReportGenerator 自行格式化,但同样,不确定这是否可取。

最佳答案

让我们用高级指针解决您的高级问题:

DataObject could be any of several different unrelated classes) implements Formattable -- ie, it knows how to organize its particular data for the report

你说 DataObject 将组织数据,然后你说:

ReportGenerator is simply fed Formattable objects from which it accesses String arrays and pretties them up

格式化和组织真的有区别吗?在某种程度上,组织数据似乎是格式化数据的初步步骤,理想情况下应将其视为单一职责,而不是将其视为多项职责。将其转换为代码意味着单个类应该组织/格式化(这些术语似乎可以互换)数据。 ReportGenerator 将是这方面的主要候选者。

And then my new problem is that I need to introduce a secondary ReportGenerator which will need DataObject data organized slightly differently

如果 ReportGenerator 负责组织/格式化数据,那么这个问题也应该得到解决。

总而言之,将数据组织从 DataObject 转移到 ReportGenerator 是个好主意。

关于java - 将多个对象合并为多种格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770775/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com