我有几类原始数据,例如:我在哪里放置格式化逻辑?
public interface Transaction {
public double getAmount();
public Date getDate();
}
我需要在几个地方该数据的输出格式的版本。例如,我可能在网页上显示金额为$1,000
,或在Excel下载中显示金额为1000.00
。我也希望能够在不同的地方重复使用相同的格式代码。其中一些会很简单(例如以某种格式显示日期),但有些会更复杂(例如根据另一个字段的值显示一个字段的不同值)。
我的问题是:我应该在哪里放置格式化代码?我能想到的几个地方:
方法添加到数据对象像
getAmountHTML()
或getAmountExcel()
。方便,但它是否使模型和视图密切相关?显示数据时,在模板中进行格式化。灵活,但由于它不是一种方法,我不能在不同的地方轻松地重复使用相同的格式。
为每个数据类创建一个格式化类,并为其提供对原始数据对象的引用。
我将要格式化很多数据对象,所以我想想出一个好方法。有没有人有一些相关的经验可以分享?
+1我喜欢这样 - 不知道游客模式! – 2010-08-27 16:16:34
您是否认为数据对象只是将格式委派给Formatter - 或者他们是否有一些自己的格式代码?你不想为每个你想要格式化的领域需要这些方法之一吗?只是想了解你的想法。 – 2010-08-30 17:43:50