谁负责对象转换?

时间:2014-08-13 18:33:38

标签: java theory

我们说我有ClassA和ClassB。 ClassA是控制器,ClassB是DAO。 ClassA通过一些简单的方法生成一个String。然后它需要将此String存储在数据库中,因此它在ClassB中调用someMethod。但是,数据库需要在存储之前将值设置为Long。在这种情况下,谁负责将String转换为Long?

选项A :ClassA负责,并且在调用ClassB#someMethod(Long theLong)之前有逻辑将String转换为Long。

选项B :ClassB负责, it 具有将String转换为Long的逻辑。 ClassA将调用ClassB#someMethod(String theString)

在一个最佳实践的世界中,这是正确的吗?

1 个答案:

答案 0 :(得分:1)

我认为使用带有两种类型参数的重载方法会很有用。

例如,在我的一些类中,特别是在setter方法中,我有方法同时接受String和int / long。原因是我有一个机制将一个实例序列化为XML,当我对它进行反序列化时,我使用setField(String)方法,该方法将字段转换为整数/长类型,因此类本身使用了{ {1}}变体。当从头开始构建类时,我通常会直接使用setField(String)

setField(int)