コンセプトの状態は振る舞いに必要な関係を記録する

スタイルを変更したとき、利用中の要素すべてを更新するには、要素とスタイルの対応を保持する必要がある。書式を要素へコピーするだけでは、後からスタイルを変更しても、その要素へ変更を伝えられない。振る舞い を実現するには、値だけでなく関係を記録する必要がある。

状態の構造を考えると、未決定の設計判断も見つかる。投票数だけを保存しても、同じ人の二重投票は防げない。誰が何に投票したかを保持する必要があり、「誰」をアカウント、IPアドレス、ブラウザーのどれで識別するかによって、利用の手間や回避されやすさが変わる。

状態は振る舞いに対して二次的だが、単なる実装上の入れ物ではない。どの関係を保持するかを調べることが、約束した振る舞いを実現できるかの確認になる。

出典:Daniel Jackson『優れたデザインにとってコンセプトが重要な理由』ノート48「コンセプトの特徴」、pp.235–236。

#software-design #concept-design #data-modeling