最近、PEAKS(ピークス)|iOSアプリ設計パターン入門を読んでいます。GUIアーキテクチャの変遷やそれぞれの特徴などが詳しく説明されているので、普段Webフロントエンドの開発をしている自分にとっても勉強になります。ただ、タイトルの通りiOSアプリ向けの本なので、コードサンプルがSwiftで書かれてます。自分はSwiftの経験がほぼないので、なんとなくで読み進めていたのですが、普段書いている言語で書き直してみたら勉強になるかなあと思い、TypeScriptで書き直してみました。
コードはこちら: yinm/typescript-architecture_samplecode
せっかくなので、モジュールごとの概要を書きます。
EventEmitter
- Observerパターンを実現するために用意したクラス
- ほぼ、js-primer/EventEmitter.js at master · asciidwango/js-primerの実装をお借りして、型定義をつけただけ
Model
- ControllerやViewのことは知らず、自身の状態に変化があった時にEventEmitterを使って通知する
Controller
- Modelのことを知っており、ユーザーの入力に応じた処理をModelに依頼する
View
- ModelやControllerのことを知っており、ユーザーの入力とControllerを繋げたり、Modelからの通知を受け取って表示の更新をする