これは私がGoogleで検索する方法を知らない(既に試した結果、ほとんどの結果がC#用だったので)私はここに行きます: 私は巨大なアプリケーションを使いこなしていますまったく新しいDAO/Entity/Service/DTO .. euh ... thingを動かす。私は多かれ少なかれ自分のことをやり続けてきましたが、やはり多かれ少なかれ、私はいくつかのやり方を理解するようになりました。エンティティを使用したJ2EEアプリケーションでのDTO変換へのエンティティ
事は、私はすべて得たことを、DBからサービスまで、「アップ」方法です:
- 私は、エンティティクラスに保存されたクエリを実行DAOクラスを得ました。それを実行した後、値とともにEntityを返します。
- サービスはエンティティを受信し、何らかの形でエンティティをDTOに変換し、いつでも必要なときに戻します。
私の問題は、コードは次のようになり、 "何とか" のものである:
DTOClass dto = ClassTransformerFromEntityToDTO.INSTANCE.apply(entityQueryResult);
私はClassTransformerFromEntityToDTOに行き、この発見:
public enum ClassTransfomerFromEntityToDTO implements Function<EntityClass,DTO Class>) {
INSTANCE;
@Override
public DTOClass apply(EntityClass entityInstance) {
/*Code to transform the Entity to DTO and the return*/
}
}
クラスこのことを...もの、実装は、これは:
package com. google .common . base;
import com. google .common . annotations. GwtCompatible ;
import javax. annotation .Nullable ;
@GwtCompatible
public abstract interface Function <F , T >
{
@Nullable
public abstract T apply (@Nullable F paramF) ;
public abstract boolean equals (@Nullable Object paramObject) ;
}
私は私ですn "プロジェクトの始めにどこにいたのか誰もが逃げ出した"という古典は誰も知らなかったし、これが何であるか(これは賢明な人が春と関係があったかもしれないと私に言った)質問(同じ側で多かれ少なかれ回答できます):
1)これはなんですか?列挙型を使用して変換を行うポイントは何ですか?
2)これは何がポイントですか?なぜ私はただ一つの関数でクラスを作り、この魔法を忘れることができますか?
私は答えに「恐ろしい」「ナンセンス」「古代」という言葉が含まれているのが好きです...私は(何らかの形で)擬似シングルトンのことを理解することはできますが...私のコードでは、 (新しいDTO、DTOのものを埋め、DTOを返す)。もしあなたが複数のインスタンスを必要としないなら、関数を静的にしてください。シングルトンを必要とするなら、地獄を作りましょう、シングルトンを作るのですが...これは... "私はこれを" X -Files "フォルダを作業中に... – Neuromante