ぶろぐれ
プログラミング情報・ITニュースやぷろぐれの配信情報などを随時更新しています。
Markdown展開
2013年6月13日木曜日
あるオブジェクトを表現する2つの方法
ドメイン駆動設計によると、値(プロパティ)を持ち、操作(メソッド)を持つオブジェクトは、 たった2種類しかないとのことです それがエンティティ(entity)と、値オブジェクト(value-object)ですね。 変わるものと変わらないもの ---- これらは言い換えると、オブジェクトの内部情報が変化する(entity)か、しない(value-object)かという事です。 例を挙げてみましょう。とある喫茶店のコーヒーの味というものは、時代とともに変化するもの(entity)です。 一方、創業当時の味というものは変化しないもの(value-object)です。 これらはどちらも「コーヒーの味」を表しているにも関わらず、オブジェクトの意味合いが異なっていますね。オブジェクト化したい概念が同じでも、その概念の捉え方次第でentityにもvalue-objectにもなり得るという事です。 値は安全 ---- さて、このようにentityとvalue-objectを分けて考えることでどのようなメリットがあるでしょうか。 value-objectは変化しないので、扱いが簡単というのが大きな理由でしょう。変化しないので、あちらこちらでコピーを取ろうが、一方の変更があちこちに影響してしまう、というようなトラブルが起こり得なくなります。 ---- ドメインが真に何を表したいかを考えて、うまくentityかvalue-objectかを決めなければならないということですね。
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿