LoginSignup
6
2

More than 5 years have passed since last update.

#iOS POSOってなに?似ているValue Object・Entity・DTOと比べてみました

Posted at

What is POSO ?

Plain Old Swift Object

try! Swift2017、 Mr.Jon Bott によるLTで取り上げられました
下記のSwift版に当たるでしょう

  • POCO -- Plain Old CLR Objectの略
  • POJO -- Plain Old Java Objectの略

似ているオブジェクトとの違い

他言語を参考に以下のオブジェクトとの違いを比べてみました

  • Value Object
  • Entity
  • DTO
  • DAO

Value ObjectとEntity

  • Getterのみ
  • ロジックを持つ
  • 値は不変(immutable)
  • DTOと同義とされることが多い
  • Entityにはアイデンティティがあり、VOにはない
  • コンストラクタのみで生成可能
  • 一般的には、レイヤー間の境界線上で持ち越される(DTO)には使われない

DTO

  • Getter / Setter
  • ロジックを持たない
  • VOと同義とされることが多い
  • Layer間のオブジェクトの受け渡しなどに使われる

DAO

  • デザインパターンの一種
  • 永続レイヤーからのオブジェクトアクセスのメカニズムを提供する

まとめ

参考資料によって、いろいろな見解はあるものの、以下のようにまとまりそうです

Object Logic Getter Setter Identity
POSO
Value Object × ×
Entity ×
DTO × ×

以上です、ありがとうございました :tada:

参考資料

参考になりました。
ありがとうございます :tada:

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2