【MVC】ユーザの入力を受け付けるのは断じてControllerではない。Viewだ。
MVCとはなんぞや
オレオレMVCがありすぎてだるい。自分の理解を整理する意味でもMVCのポイントはなにか、書く。
GUIアプリケーションを作る場合、ユーザの入力を受け取るのは間違いなく View である。
Wikiを読むとControllerが入力を受け付けるように読めて、そう解説してあるブログも腐るほどあるがそれがかなり理解を歪めている気がする。
「Viewが発火したeventをハンドリングするのがController」という意味で、入力に対する制御を行うのはControllerだがあくまでユーザの入力を受けとるのはViewである。多分。これをごっちゃにしている人がとても多いようにみえる。
ここさえ間違えなければ、後は難しくない。Modelに依存するView、ModelとViewをCompositeするController、誰にも依存しない要のModelというだけ。