6

オブザーバパターンとMVCの違いは何ですか? 学校でJavaでMVCプログラムを書くいくつかの経験がありますが、オブザーバーパターンの経験はありません。 (オブザーバーのパターンはJavaでObserverクラスを使用したことを意味すると私は言いました...それは良い答えだとは思わない)。オブザーバパターンとMVC

  1. どういう違いがありますか?オブザーバーパターンはコントローラーに別のクラスを使用しませんか?

  2. オブザーバーパターンとMVCの関係は何ですか? 私は2つの異なるバージョンを聞いた。

    • 最初のバージョンは、MVCはアーキテクチャであり、オブザーバーパターンはデザインパターンです。 MVCはオブザーバーパターンを使用しているため、類似しています。
    • 2番目のバージョンは、オブザーバーパターンで、MVCは2つの異なるデザインパターンです。
  3. どちらか一方のみ使用できますか?もしそうなら、どんな場合に、あなたはもう一方を使い、なぜですか?

+0

MVCは、私がここにループを参照してくださいオブザーバー – lichengwu

答えて

2

あなたが求めている質問に関連する記事がたくさんあります。私のMVCは、観察者のパターンを「含む」アーキテクチャパターンです。私は実際に異なる現実のプロジェクトの実装でMVCパターンを実際に研究すると、そこに複数のデザインパターンがあると私は信じています。

ズームインまたはズームアウトのいずれかです。

13
  1. あなたは右のMVCは、より多くの建築スタイルではなく、ここではデザインパターン 良い議論であると言っている:Is MVC a Design Pattern or Architectural pattern

私は、これはあまりにもあなたの他の二つの質問に答える願っています。

オブザーバーデザインパターンは、オブジェクトxが変更された場合に、オブジェクト(たとえばx)のすべての従属者に通知する場合に使用されるBehavirolパターンです。 グッド読む:http://www.dofactory.com/Patterns/PatternObserver.aspx

そして、彼らの両方が密接に関連して、MVCとしてあなたはMVC図から見ること - 例えば :「表示」の変更は、「モデル」に通知する必要があり、効率的な「コントローラ」 ワンそのような特徴を達成するための方法はオブザーバーのデザインパターンです。

グッド読み取り:http://en.wikipedia.org/wiki/Observer_pattern

In fact the observer pattern was first implemented in Smalltalk's MVC based user 
interface framework. 

は、この情報がお役に立てば幸い!

enter image description here

+0

が含まれています。 Viewは、信号を送信するモデルに信号を送信するコントローラに信号を送信します。 – whomaniac

+0

はい。信号が開始され、ビューで停止します。たとえば、ボタンをクリックしてテキストをイタリック体にすると、コントローラは「イタリック体」が何を意味するのか(論理、たとえば実際に選択されたテキストなど)を決定し、テキストモデルを更新します= TRUE ")、フォントの斜体バージョンを表示するようにビューに指示します。しかし、一般的にあなたは無限ループを望んでいません。 – stackexchanger

+0

しかし、更新がモデルから来た場合、矢印「選択範囲を見る」は何をしますか? – binaryguy