MVC
https://gyazo.com/f3666aff6d6ff8c8ba8de3bccc192a8b
入力、出力、データ処理を各コンポーネントに分割した
原初MVCはCompositeパターン、Strategyパターン、Observer Paternの組み合わせで構成されていた
データの流れは一方通行
3つのコンポーネント
Controller
Model
データの定義と、そのデータの操作をする
UIとの依存性は小さい
View
UIに情報を表示する
ViewはModelをObserveしている
Cocoa MVC
appleが提唱
ModelとViewを完全に分離し、Controllerがそれぞれを参照するようにした
問題点
https://res.infoq.com/news/2014/05/facebook-mvc-flux/en/resources/flux-react-mvc.png
MとVの双方向バインディング?
壊れやすく、予測不能で、わかりにくい、複雑になる
スケールしない
誕生
Smalltalk-80は子供でもわかりやすい究極のインターフェースであるDynabookのために生まれたが、その際に対話型のユーザーインターフェースを構築するためにMVCが考案された
参考
『iOSアプリ設計パターン入門』
https://speakerdeck.com/tenjuu99/what-mvc-is
http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html
原典
Smalltalkと関係がある
『オブジェクト指向コンピューティング』 6章