У меня есть несколько классов с необработанными данными, например:
public interface Transaction {
public double getAmount();
public Date getDate();
}
Мне нужно вывести отформатированные версии этих данных в нескольких местах. Например, я могу отобразить сумму как $1,000
на веб-странице или 1000.00
при загрузке в Excel. Я также хочу иметь возможность повторно использовать один и тот же код форматирования в разных местах. Некоторые из них будут простыми (например, отображение даты в определенном формате), но некоторые будут более сложными (например, отображение разных значений для одного поля в зависимости от значения другого поля).
У меня вопрос: куда мне поместить код форматирования? Я могу придумать несколько мест:
Добавить методы к объекту данных, такие как getAmountHTML()
или getAmountExcel()
. Удобно, но делает ли это модель и вид слишком тесно связанными?
Выполните форматирование в шаблоне при отображении данных. Гибкий, но так как его нет в методе, я не могу легко использовать одно и то же форматирование в разных местах.
Создайте класс форматирования для каждого класса данных и дайте ему ссылку на исходный объект данных.
У меня будет много объектов данных для форматирования, поэтому я хотел бы предложить хороший подход. Есть ли у кого-нибудь опыт, которым можно поделиться?