我有一個域對象圖,我需要構建一個DTO以將其發送到視圖。如何正確設計它?我看到2個選項,我可以在哪裏放置DTO構建代碼:從域對象構建DTO的設計
1)進入DTO構造函數。但是,域對象必須通過getter將所有字段顯示給DTO,所以它不是DDD。
public DTO(DomainObject domain) {
/// access internal fields of different domain object.
}
2)進入域對象。訪問字段不會有問題,但添加新視圖時,域對象將會非常快速地增長。
public DTO1 createDTO1() {
...
}
public DTO2 createDTO1() {
...
}
// and so on...
我應該如何正確構建DTO?
ad 2.轉換器仍然需要訪問域對象的privite字段,對吧? – piotrek
自定義轉換器通常無法訪問私有字段。可以使用來自1.的構造函數或DTO引用程序。 – pasha701