1

我正在使用当前层拓扑:

1) 道 2) 服务 3) 控制器(演示)

在我的一个控制器中,我收到了以下电话(来自客户):

public PlayerStatisticsDTO getPlayerStatistics(int playerId);

控制器现在应该将调用委托给服务层。

问题是,如果我创建一个类似的方法:

public PlayerStatisticsDTO getPlayerStatistics(int playerId);

在我的服务中,我实际上是让我的服务层知道 DTO 对象!

我相信这是一种不好的做法(或不是?)

所以我想出的另一个选择是创建一个新类:

public class PlayerStatistics {...}

然后调用我的控制器:

 PlayerStatistics stats = this.service.getPlayerStatistics(playerID);
 return toDTO(stats);

这个解决方案的问题是我在我的项目中根本没有使用这个类,所以它看起来像是一个不必要的重复代码

4

1 回答 1

0

如果在请求的数据和被呈现的数据之间存在一对一的映射,那么在表示层中使用 DTO 对象并不是一个坏习惯。如果您稍后要更改表示层,那么您可以创建一个包含表示属性的新 POJO,并将它们映射到服务层中。

于 2013-08-28T14:17:58.067 回答