2011年10月02日
川俣晶の縁側ソフトウェア技術雑記 total 4141 count

続・MVVMの世界は隣にあった

Written By: 川俣 晶連絡先

「あることに気づいて、愕然とした。うちのめされた」

「なんだい?」

「WPFにはコマンドという機能がある。機能を抽象化したものだ」

「それがどうした?」

「UIを改変しやすくするには、このコマンドという機能があると良いわけだ」

「どうして?」

「ある機能を発動するトリガをいくらでも変更できるからだ。ボタンは嫌だからメニューにするような改変も簡単で、インパクトも小さい」

「それで?」

「だから、抽象化されたUIレイヤーは持つといいことあるよ。ということだ」

「それに今更気づいたってこと?」

「そうじゃない。ここで言いたいのはもっと別のことだ」

「というと?」

「ANGFはWPFアプリではないが、最初から持っていたんだよ。抽象化されたUIレイヤーを」

「なぜ?」

「うん。理由は散文的で単純だ。ユーザー入力をジャーナリングしてプレイバックできるというのが開発目標にあってね」

「つまり。ユーザー入力とジャーナリングファイルからの入力をどちらも受け付けたいわけだね」

「そうだ。そこで、UIを抽象化して差し替え可能にした」

「それが、気づいたらMVVMだったという理由の1つだね?」

「まあな。だからさ。実際に昔からAbstractUIってクラスはあるし、UIが抽象化されているから変更も簡単だ」

「たとえば?」

「メニュー選択は現在独自に描画される選択画面を出すのだが、これを普通のダイアログボックスに変えるのも簡単で、それでアプリ本体に修正は必要無い。UIレイヤーだけの修正で終わる」

「それってANGFをバージョンアップするだけでよくて、1980オタクのヒデオはバージョンアップしないでいいってことだね?」

「そうだ。それがUIを抽象化するという意味だ」