何が問題か

Subject の状態に依存して変化する Observer では、それぞれの状態を更新する必要があります。そのとき「テキストボックスの Text= の値は…に、キャンバスの Background= の値は…に、スライダーの Value= の値は…に」といった具合に、手作業でコードを記述する(ハードコーディング)作業を余儀なくされます。そこに、データバインディングを導入すると、その手間を省けるだけでなく、分離コードを記述する「プログラミング言語に依存しない」という恩恵があります。

《Note》何が問題か:単純な軽作業でも、その数が膨大になると重労働です。また、作業が単調なだけにミスを誘発しやすく、得てしてバグの発見も困難になりがちです。さらに醜悪なのは、些細な仕様変更にも、大量のコードの変更を余儀なくされることです。というのも、特定の実現方法(コンポーネント)に依存するコードが、散在する傾向にあるからです。この醜態を象徴するのが「西暦二千年〔Y2K〕問題」でした。Y2K は、その後も様々にその姿を変えて、今日もなお健在です。◆ 既存のコンポーネントを利用しているだけなら、仕様変更が頻発する心配はないかもしれません。しかし、実際のアプリケーション開発の現場ではどうでしょう。仕様変更があると、開発の途上にあるコンポーネントに依存するコードを、すべて書き換える必要に迫られます。たとえ一行でも変更したなら(残りの膨大なコードは変更していないのに)再コンパイルを余儀なくされます。これでは、アジャイル開発も失速します。◆ 分離コードは、このような問題解決の有効な処方箋のひとつになります。♪ひよ子 □