将多个对象合并为多种格式
Merging Multiple Objects to Multiple Formats
我正在寻找适用于具有多个 DataObject
和多个输出格式 (ReportGenerator
s) 的情况的最佳设计。
当前的设置是这样的:有一个 Formattable
接口,其中有 ReportGenerator
使用的各种方法。每个 DataObject
(DataObject
可以是几个不同的不相关 classes 中的任何一个)实现 Formattable
—— 即,它知道如何为报告组织其特定数据,并且ReportGenerator
被简单地馈入 Formattable
个对象,它从中访问字符串数组并美化它们。
1) 所以这是我的第一个问题:这是否可取?因为结果是为报告组织数据的过程散布在所有 DataObject
中。另一种选择是一个中介 class,它有一大堆 instanceof
检查要格式化的 DataObject
类型,但至少这样它就在一个地方。
2) 然后我的新问题是我需要引入一个辅助 ReportGenerator
,它需要 DataObject
数据组织方式略有不同。在当前的设置中,我可以在 Formattable
方法上引入一个参数来指定 ReportGenerator
应该为哪种 DataObject
设置格式,但再次不确定这是否可取。
让我们用高级指针解决您的高级问题:
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
格式化和整理真的有区别吗?在某种程度上,组织数据似乎是格式化数据的初步步骤,理想情况下应将其视为单一职责,而不是将其视为多项职责。将其转换为代码意味着单个 class 应该 organize/format (这些术语似乎可以互换)数据。 ReportGenerator 将是这方面的主要候选者。
And then my new problem is that I need to introduce a secondary
ReportGenerator which will need DataObject data organized slightly
differently
如果 ReportGenerator 承担起 organizing/formatting 数据的责任,这个问题也应该得到解决。
总而言之,将数据组织从 DataObject 转移到 ReportGenerator 是个好主意。
我正在寻找适用于具有多个 DataObject
和多个输出格式 (ReportGenerator
s) 的情况的最佳设计。
当前的设置是这样的:有一个 Formattable
接口,其中有 ReportGenerator
使用的各种方法。每个 DataObject
(DataObject
可以是几个不同的不相关 classes 中的任何一个)实现 Formattable
—— 即,它知道如何为报告组织其特定数据,并且ReportGenerator
被简单地馈入 Formattable
个对象,它从中访问字符串数组并美化它们。
1) 所以这是我的第一个问题:这是否可取?因为结果是为报告组织数据的过程散布在所有 DataObject
中。另一种选择是一个中介 class,它有一大堆 instanceof
检查要格式化的 DataObject
类型,但至少这样它就在一个地方。
2) 然后我的新问题是我需要引入一个辅助 ReportGenerator
,它需要 DataObject
数据组织方式略有不同。在当前的设置中,我可以在 Formattable
方法上引入一个参数来指定 ReportGenerator
应该为哪种 DataObject
设置格式,但再次不确定这是否可取。
让我们用高级指针解决您的高级问题:
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
格式化和整理真的有区别吗?在某种程度上,组织数据似乎是格式化数据的初步步骤,理想情况下应将其视为单一职责,而不是将其视为多项职责。将其转换为代码意味着单个 class 应该 organize/format (这些术语似乎可以互换)数据。 ReportGenerator 将是这方面的主要候选者。
And then my new problem is that I need to introduce a secondary ReportGenerator which will need DataObject data organized slightly differently
如果 ReportGenerator 承担起 organizing/formatting 数据的责任,这个问题也应该得到解决。
总而言之,将数据组织从 DataObject 转移到 ReportGenerator 是个好主意。