2011-11-07 8 views
1

チュートリアルのhttp://www.vainolo.com/tutorials/から、モデルの位置がモデルに保存されます。すべてのデータをファイルに保存して、ファイルをロードするときに同じビューを取得したいとします。GEFは実際にMVCフレームワークですか?

この質問の回答を検索すると、もう一つ重要な質問があります。
GEFは本当にMVCフレームワークですか?

GEF Controllersは、コントローラの役割がEditPartから取得されることを示します。指定されたオブジェクトを作成します。
コントローラーはビューパーツを保持しますが、コントローラーはユーザーインタラクションのみに反応し、ビューを通知し、更新する必要があります。その上
結び、それはEditPartのの一部であり、それが変化するため、次のコードは、間違っている:、

public void refreshVisuals(){ 
    IPersonFigure figure = (IPersonFigure)getFigure(); 
    Person model = (Person)getModel(); 
    figure.setName(model.getName()); 
    figure.setSurname(model.getSurname()); 
} 

wikipediaについては、ビューには、モデルのオブザーバを持っているので、GEFから次の文が間違っていますではない?
EditPartは、実際のモデル状態をビューに同期させ、オブザーバを実装します。

MVCパターンでは、コントローラーはモデルの変更をリスンする必要があります。 GEFでは、EditPartsはコントローラであるため、モデルの新しい状態に応じてビューを更新するためにモデルをリッスンする必要があります。

だから何が正しいですか?

クロスポストを防ぐにはhttp://www.eclipse.org/forums/index.php/m/755178/をご覧ください。

答えて

2

ウィキペディアは時々、これはコントローラによって行われ、時にはビューはモデルを直接読んで、自分自身を更新することができます。MVCは異なる味(MVC overview)に来る」というMVCの記事の開始を述べている。

MVCが提供する主なコンセプトは、ロジックを含まないビューからプレゼンテーションを切り離すことです。モデルの変更はコントローラによって実行され、ビューの変更はモデルが変更されたときに発生します。コントローラがモデルを変更したときにビューを更新する人になることはできませんが、誰かがそれをやる必要がありますか?私は個人的にモデルから直接ビューを読み込むことはあまりにも依存するため、モデルとビューはcompでなければなりません無邪気に分かれた。これは、モデルを変更する必要がある場合(たとえば、フィールドが実際から計算されるように変更された場合など)、ビューを変更する必要はありませんが(コントローラを変更する必要があるかもしれませんが、通常はより簡単に)。

これはあなたのために物事をクリアします。

関連する問題