[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10816] Value Object と DTO



 井上泰です。

J2EEデザインパターンのValue Objectについて気づいたことです。

1. Bitter EJB
Tate, Clark, Lee, Linskey "Bitter EJB" Manning Publications Co., 2003
http://www.manning.com/tate2/index.html

P. 100 に、Value Objectについて記述がありました。
   ..., the Core J2EE have stopped using the name Value Object to ...
... the Core J2EE Patterns use a more common name: DTO.

The Core J2EE Patterns 2版はまだ入手していませんが、変更があったので
しょうか?


2. Patterns of Enterprise Application Architecture
Fowler, Martin, Rice, David.... , "Patterns of Enterprise Application
Architecture" Addison Wesley 2002
http://www.aw-bc.com/catalog/academic/product/0,4096,0321127420,00.html
は、Value Object(VO)とDTO(Data Transfer Object)を区別しています。

1) Value Object
いわゆるcall by valueとして扱われる小さなオブジェクト。(変数の代入は値の
コピーが渡されるようだ)

C#では、次のような区別がある (井上はC#について知りません)。
class reference object
struct value object

Javaには参照型のオブジェクトしか存在しない。J2EEコミュニティはValue
Objectを誤って使用している。

2) DTO(Data Transfer Object)
レイヤー(ティアー)をまたがって移送されるオブジェクト。呼出のオーバヘッ
ドを節約するために複数の
オブジェクトをまとめて格納する。JavaではRMI呼出が実行され、引数(DTO)がシ
リアライズされる。


おおよそ、上のような記述がありました。Fowlerの批判が採用されたのでしょうか?