ドメインオブジェクトの代わりにビューモデルでDTOを使用したいと思いますが、各ドメインオブジェクトに対して2セットのプロパティを維持する必要があるためメンテナンスオーバーヘッドを正当化するのは苦労しています。ドメインオブジェクトのプロパティを複製することなくDTOを使用するためのパターンはありますか?
ドメインオブジェクトのプロパティがオブジェクトのアクションから分離され、2つのプロパティセットを維持する必要がないパターンを実装しているか知っている人はいませんか?
public class Person{
private String firstName;
private String lastName;
public String getFirstName(){
return this.firstName;
}
public String setFirstName(string firstName){
this.firstName = firstName;
}
...
}
public class PersonActions extends Person{
public void save(){
...
}
public Person get(){
}
}
私はPersonAction周りを通過する必要があると思いますので、この方法では、まだ少しクルージ的な感じ:
一つは、私は私のドメインオブジェクトは、プロパティだけこと持っていることや、サブクラスなどのアクションを付けるだろうと思っていましたもし私がドメインオブジェクトの完全な表現を望むなら、クラス。
ORMや他のデータベース抽象化ツール、特にソースコード生成をサポートするものを使用していますか? –
DAOやアクティブなレコードパターンについて聞いたことがありますか? – maks
あなたのドメインが貧血でないならば、定期的にサブクラス化することはお勧めできません。それは、リッチドメインオブジェクトであり、DTOはよりフラットで、より多くのプレゼンテーション指向になるので、それらの構造と動作が異なる必要があります。マッピングレイヤーを持つ2つの別々のモデルを維持してください。 –