Strutsを使っていたときにこのへんすごく迷った。SAStrutsでもでてきたのであらためて調べ直しておさらいしてみる。
VO vs DTO vs DAO vs Entity
VOは不変でなければならないので、MVC間でやりとりされるオブジェクトは、DTOといったほうがいいらしい(参考:OZACC.blog: VOとDTOの違い)。
WikipediaのDTOをみると「過去、VOとも呼ばれていた」とある。よって、藤原はVOをもう使わないようにします(会社で使ってるな・・・)。
DAOはSelectとかInsertとか、DBにアクセスしてくれる人のこと。結果としてEntityを返してくれたりする。
Entityはレコードを表現する。DTO(VO)っぽいけど、DAOみたいなこともしやがるらしい(参考:DAOとかVOとかDTOとか – 人生全て暇つぶし)
DTOは、EntityからDTOが作られるイメージ。
Webアプリの場合は、画面に表示するのに都合のいいオブジェクトだったりして、都合よくデータを扱える形になっているのがポイント。
Strutsで開発していたときに、BeanUtilを使ってDTOにデータを移したり、逆にActionFormに移したりしたことがあるが、まさかそれだったのね。(参考:DTOとEntityの差は何ですか。 -OKWave)
ActionFormはActionとBusinessLogic間をつなぐデータオブジェクトとかいうのを聞いたことがあるが、DTOつかうなり、ActionFormのままでいくなり、どういうふうにつなぐかを考えることが重要ですね。(参考:civic site ≫ Struts開発での考察)
*
その他、Action、Service、Logicなどもありますがこれはまた今度でも。
コメント
[…] DAOとかDTOとかVOとかEntityとか […]
[…] DAOとかDTOとかVOとかEntityとか […]
[…] DAOとかDTOとかVOとかEntityとか […]