Image may be NSFW.
Clik here to view.
MVCについて勉強したので、実際にRubyTkに応用してみる。
MVCとは
MVCとは、アーキテクチャの一つ。 Model-View-Controllerの略。 ユーザ・インタフェースをもつアプリケーションをうまくつくるための設計方法。
詳しい解説は、リンク先に譲るとする。
MVCアーキを利用すると、
- 仕様変更につよい
- 移植がしやすい
などのメリットがある。
また、テストが書きやすいという利点もある。 RubyTkライブラリがからむとviewのテストがかけない。 tkライブラリは論理的な処理から切り離したい。
MVC実装例
ボタンをおすと、ファイルからデータを読み出して、画面に表示するアプリケーションをつくる。
MVC以前
普通の実装。
MVCの実装
Model, View, Controllerの3つにクラスを分割して実装。
proc, lambdaを導入する
上の例だと、ViewとControllerの間に依存関係がある。これをなくしたい。
Rubyでコールバックやハンドラの仕組みを導入するためにはどうすればいいのだろうか?
答えは、procやlambdaを利用すればうまくできた!といっても、完全に依存関係がなくなったわけではないけど。
感性的にこっちの方が美しく感じる。