我正在使用当前的图层拓扑:
1)dao 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);
这个解决方案的问题在于我在我的项目中根本不使用这个类,所以它似乎是一个不必要的重复代码
答案 0 :(得分:0)
如果请求和呈现的数据之间存在一对一的映射,则在表示层中使用DTO对象并不是一种不好的做法。 如果要在以后更改表示层,则可以创建包含表示属性的新POJO并将其映射到服务层。