MVP デザイン パターンを使用して Windows フォーム アプリケーションを作成します。例:
IViewInterface view = new FormSome();
IPresenter presenter = new Presenter(view);
プレゼンター コンストラクターでは、次のようなことを行います。
public Presenter( IViewInterface view ) {
this.view = view;
this.view.someEvens += myMethod;
}
今私の質問:私がこのようなことをするとどうなりますか:
IViewInterface view;
{
view = new FormSome();
IPresenter presenter = new Presenter(view);
}
// if my presenter exists here?
プレゼンターから明示的にメソッドを呼び出したくありません。プレゼンターがビューのイベントを処理したいだけです。GC はプレゼンターをメモリから削除しますか、それともプレゼンターがビュー イベントを処理することを GC が認識しているため、ビューが存在する限り、プレゼンターも存在しますか?
編集
私はそれをテストし、それは動作します。しかし、GC がまだプレゼンターを破棄していないため、それが機能するかどうかはわかりません。または、GC は私が思っていたよりもインテリジェントです。