まくまくいろいろノート
設定値の伝搬タイミングを意識する
2015-05-21

設定値によって複数のオブジェクトの振る舞いを変える可能性のあるアプリケーションは、その設定値を各オブジェクトが参照するタイミング、振る舞いへと反映するタイミングに整合性を持たせることを意識して設計する必要があります。

反映タイミングを意識しないといけないものには、下記のようなものがあります。

  • 現在時刻の更新
  • 言語設定 (Locale) の変更
  • ウィンドウサイズ、フォントサイズの変更

例えば、現在時刻の変化によってリアルタイムに表示を変えるようなアプリケーションは、各 View コンポーネントがそれぞれの現在時刻情報を持ってしまうと、あるコンポーネントは現在時刻の情報を表示しているのに、他のコンポーネントは一分前の情報を表示している、といった不整合が起こります。 このような、アプリケーション全体に同時に反映すべき情報は、その設定値の変化をコールバックで直ちに知る仕組み、あるいは、メッセージ(Android なら Intent など)による通知の仕組みを導入することで、一貫性を崩すことなく伝搬することができます。

2015-05-21