2013-08-28 176 views
1

我使用當前層的拓撲結構:彈簧:DTO和服務層

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類 – Urbanleg

+0

你想直接訪問dto到你的控制器不是嗎?你想要怎樣的模塊化? –

回答

0

如果在請求和呈現的數據之間存在一對一映射關係,那麼在表示層中使用DTO對象並不是一個不好的做法。 如果您稍後要更改表示層,則可以創建一個包含presentation屬性的新POJO並將它們映射到服務層。