Утилита класса для форматирования

Я реализовал служебный класс FormatUtils (последний со статическими методами), который преобразует данные из объектов Employee в пригодный для использования формат (например, снимая со знака '$' строки и анализируя их как двойные, переформатируя имена в имена и фамилии). Теперь где-то в моем коде мне нужен метод, который форматирует множество полей данных Employee для вывода в виде единой строки (отправленной позже в stdout). Имеет ли смысл помещать его в этот служебный класс, когда он, вероятно, понадобится только для использования с объектами Employee, а не общего назначения?

2 ответа

Я бы, вероятно, переместить методы для форматирования одного Employee в Employee сам класс. Если есть другое / дополнительное форматирование, которое необходимо сделать для списка сотрудников (например, заголовки строк и столбцов), я мог бы поместить это в служебный метод (или класс, если его необходимо использовать повторно).

Не использовать Employee#toString() отформатировать его для читателей-людей; используйте этот метод только для отладки. В противном случае вы не сможете использовать что-либо в классе для отображения его статуса в отладчике. Я знаю примитивные обертки и использование перечислений toString() для этого, но это в основном для использования их с конкатенацией строк.

Что означает "удаление символов $ со строк и их разбор как двойные"? Вы храните зарплату сотрудника в виде строки? Не делай этого. По большому счету, валютные ценности должны быть BigDecimal или же BigInteger объекты. Вы вводите знаки доллара при форматировании с помощью NumberFormat.getCurrencyInstance(), Это также облегчает работу базы данных.

Если вы заняты разделением имен на имена и фамилии, вам действительно нужно Name класс, и вы должны предоставить форматеры для этого. Для работы JPA вы можете сделать переменную экземпляра Name@Embeddable,

Вы можете дать Employee методы формата класса, или вы можете иметь свой класс реализовать java.util.Formattableвозможно принятие альтернативного флага форматирования. Вы могли бы даже использовать "бесполезное программирование" и дать Employee методы как:

public void writeToFormally(final Appendable a) {...}
public void writeToSimply(final Appendable a) {...}
Другие вопросы по тегам