我已经实现了一个名为 FormatUtils 的实用程序类(带有静态方法的 final),它将 Employee 对象中的数据转换为可用的格式(例如,剥离字符串中的“$”符号并将它们解析为双精度,将名称重新格式化为名字和姓氏)。现在,在我的代码中的某处,我需要一种方法来格式化大量 Employee 数据字段以输出为单个字符串(稍后发送到 stdout)。当它可能只需要与 Employee 对象一起使用而不是具有一般用途时,将它放在这个实用程序类中是否有意义?
问问题
364 次
2 回答
2
我可能会移动将单个格式化Employee
为Employee
类本身的方法。如果需要对员工列表进行不同/额外的格式化(例如行和列标题),我可能会将其放入实用程序方法(或类,如果需要重用)。
于 2013-04-09T20:27:10.003 回答
1
不要Employee#toString()
用来为人类读者格式化它;仅使用该方法进行调试。否则,您可能无法使用类中的任何内容在调试器中显示其状态。我知道原始包装器和枚举toString()
用于此目的,但这主要用于将它们与字符串连接一起使用。
“剥离'$'标志字符串并将它们解析为双打”是什么意思?您是否将员工的工资存储为字符串?不要那样做。总的来说,货币价值应该是BigDecimal
或BigInteger
对象。格式化时使用美元符号NumberFormat.getCurrencyInstance()
。它也使数据库工作更容易。
如果您正忙于将名称拆分为名字和姓氏,那么您确实需要一个Name
类,并且应该为此提供格式化程序。对于 JPA 工作,您可以使 Name 实例变量@Embeddable
。
你可以给Employee
类格式方法,或者你可以让你的类实现java.util.Formattable
,可能接受替代格式标志。您甚至可以使用“getless 编程”并提供Employee
如下方法:
public void writeToFormally(final Appendable a) {...}
public void writeToSimply(final Appendable a) {...}
于 2013-04-09T20:45:26.793 回答