2017-05-15 12 views
0

モデルの値が変更されると、オブザーバーパターンを使用してビューを自動的に更新します。モデルが観測可能(主題)であり、DOM要素が変更をモデルで見ているオブザーバーであるため、モデル自体を更新できることは明らかです。オブザーバーパターンは一方向または双方向データフローです

しかし、あなたは、私がモデル値を観測し、上のモデル値に変更]をクリックされたボタンを使用している場合、それはまだ一方向のデータフローであると思います

+0

したがって、オブザーバパターンは一方向であり、私の使用例は双方向です。 – meteorzeroo

答えて

1

オブザーバーパターンは単方向ですが、あなたのユースケースは双方向で観察者のパターンの実装を拡張しています。


オブザーバーパターンは、それが更新だと、観察者はそれに応じて通知()関数を実装する場合に対象物体が観察者に通知することを、規定しています。

あなたが描いていることは、そのパターンの一部ではありません。あなたはそれを実装することができ、データが流れる場合は双方向です。しかし、それはパターン定義の一部ではありません。

+0

擬似コードは次のようなものです:ボタン自体はオブザーバであり、ボタンラベルはモデル値を参照しています。ボタンクリックはモデル値を変更し、オブザーバパターンであるため、オブザーバ(ボタン自体も含めて)を呼び出します。 – meteorzeroo

+1

@ジョーは言った、副作用はパターンの一部ではありません。これはあなたのユースケースがするものです。観測者パターンは、一方向のイベント伝搬のみを扱います。 – hazardous

+1

だから、オブザーバーのパターンは単方向で、私の使用例は双方向ですね。 – meteorzeroo