#015
UI設計パターン
#015あたいおぶじぇくと
値オブジェクト (Value Object)
別名・表記:Value ObjectVO
UIXHERO Definition
「値そのもの」。中身が同じなら同じものとして扱うデータ(例:色、日付、金額)。
概要
エンティティと対になる概念。 値オブジェクトは「交換可能」である。例えば、古い「100円」オブジェクトの中身を書き換えるのではなく、新しい「100円」オブジェクトを作って置き換える(イミュータブル)。 これにより、意図しないデータの変更(副作用)を防ぎ、バグを減らすことができる。
UXでの活用
- デザインシステム: 色(Color)、タイポグラフィ(Typography)、スペーシング(Spacing)などは、まさに値オブジェクトとして定義されるべきものである(Design Tokens)。
- 入力フォームのバリデーション: 「メールアドレス」を単なる文字列ではなく「Email」という値オブジェクトとして扱うことで、形式チェックのロジックを一箇所に集約できる。
💡 使いどころ
住所、金額、色、電話番号など、個体を識別する必要がない概念をモデリングする時。不変(Immutable)にすることで、副作用のない安全なコードが書ける。
⚠️ 注意点・誤用
何でもかんでも値オブジェクトにするとパフォーマンスに影響が出ることがある。更新頻度が高く、履歴管理が必要なものはエンティティにするべき。
具体例
- 「100円」という金額(どの硬貨かは関係ない)
- 「#FF0000」という色(どこに使われていても同じ赤)
- 座標 (x: 10, y: 20)
関連する解説記事
関連する記事詳細が見つかりませんでした。