0

サービスを作成する場合、通常、データ オブジェクト (ORM) とサービス オブジェクト (JSON/XML などにマーシャリングされるもの) を分離する傾向があり、データ オブジェクトを入力として受け取り、生成するコンバーターを作成することになります。サービス オブジェクト。コンバーターは何もせず、ゲッターを使用してデータ オブジェクトからデータを取得し、それらの一部をサービス オブジェクトに設定します。

多くの人がこのプロセスに共感できることを願っています。JDK にこのシナリオを最適化する機能があるかどうかを知りたいです。

私は、jvm がシステム レベルで行う最適化された配列コピーの観点から、より多くのことを考えています。

4

2 に答える 2

2

「データ オブジェクト」と呼ばれるものは通常、「エンティティ」と呼ばれます。「サービス オブジェクト」と呼ばれるものは通常、「データ転送オブジェクト」(「DTO」) と呼ばれます。

これら 2 つは、他のすべての Java オブジェクトと同様に Java オブジェクトであり、JVM には、エンティティから DTO への変換を最適化するための特定の機能はありません。

とにかく、このプロセスは、SQL クエリを実行してエンティティを取得し、DTO をシリアル化してネットワーク経由で送信するコストと比較して、非常に高速です。最適化する必要がある場合、それはおそらくエンティティから DTO への変換ではありません。

于 2013-08-10T08:33:05.170 に答える
0

インターフェイスを使用Serializableしてから、 でオブジェクトを読み取り、ObjectInputStreamで書き込むことができますObjectInputStreamDataInput/OutputStreamしかし、シリアライゼーションに使用する方がはるかにきれいです。

http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html http://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html http://docs.oracle.com/javase/7/docs/api/java/io/DataOutputStream.html http://docs.oracle.com/javase/7/docs/api/java/io/ObjectInputStream.html http://docs.oracle.com/javase/7/docs/api/java/io/ObjectOutputStream.html

于 2013-08-10T08:32:51.783 に答える