VO, DTO, POSO, DAO, Entity の違い
はじめに
try! Swift ではじめてDTO、POSOという言葉を聞いて、Entityとの違いとかよくわからなかったので調べてみた。
すると、類似の用語が5つでてきた。
- VO (Value Object)
- DTO (Data Transfer Object)
- POSO (Plain Old Swift Object)
- JavaだとPOJO (Plain Old Java Object)
- DAO (Data Access Object)
- Entity
いずれもシンプルに関連するデータをまとめたobjectだが、微妙に性質が異なる。
VO (Value Object)
- getterのみ
- 不変
DTO (Data Transfer Object)
- VO + setter
- 可変。外から変更可能
- 異なるレイヤー間(モデル層、ビュー層など)でデータを受け渡すのに使う
POSO (Plain Old Swift Object)
- おそらくDTOと同じ。たぶん
DAO (Data Access Object)
- DAO自体はデータを保持せず、DBにアクセスし、DTO/VOを返す
Entity
- 1つのオブジェクトでDTOとDAO両方の性質をかねる
おわりに
ざっと調べた感じ、上記のように理解しました。
言語とか設計思想によっては、意味が異なってくるかもしれません。
間違ってたら教えてください。
参考
Author And Source
この問題について(VO, DTO, POSO, DAO, Entity の違い), 我々は、より多くの情報をここで見つけました https://qiita.com/sagaraya/items/96708cd451021fb040b7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .