タグ

設計とValueObjectに関するkitokitokiのブックマーク (1)

  • Value Object(バリューオブジェクト) - Strategic Choice

    師曰く数学的な値のように振る舞うオブジェクトを作成しなさい。どういうこと?変化する状態の入れ物ではなく、整数のように振る舞うオブジェクトのことです。数学の世界では、「1」に「1」を足しても、「1」自身が変更される訳ではなく、新たに「2」という数字が作成されます。プログラミングでこれを表現するのが「Value Object」になります。よって、「Value Object」は不変オブジェクト(Immutable)です。Javaのプリミティブはこの数学世界の住人で、そのラッパー(やStringは)はまさに「Value Object」と言えます。どうして?オブジェクトには大きく2種類、状態が変化する「状態型」と、変化しない「値型 *1」があります。値型を実現するのが「Value Object」パターンです。状態型の方が一般的ですが、状態を持つが故に「呼び出し順序」が重要になってしまっています。そし

    kitokitoki
    kitokitoki 2010/10/25
    「値はコンストラクタのみで設定可能とします。setterは作成しません。」
  • 1