Mediatorパターン

      2017/02/09

各オブジェクト間の繋がりを別のオブジェクトに任せる手法。
例えばSeekBarEditTextで同じ値を設定できるUIを用意した場合、それぞれで値を変更させた場合に連動させる必要が出てきます。
その処理を各UIを定義したクラスで行うより、別のクラスに任せるようにした方が再利用なども容易になります。

SeekBarとEditTextで同じ値を設定できるUI

edit-seekbar

サンプルソース

Androidのソースコードです。

  • SeekBarが変更されたら変更後の値をEditTextに反映します。
  • EditTextが変更されたら変更後の値の位置へSeekBarのプログレスを移動させます。
変更通知がお互いで飛び交わないようにmDuringSynchronizeを使用して制御しています。

Mediatorクラスがあることで、画面側では連動処理を管理することなく、必要な時に値だけを取得することができます。
上記は管理するオブジェクトが2つだけですが、 もっと多くのオブジェクトが連動する場合は積極的に使っていきたいですね。

 - 設計 ,