Cocoa MVCについて
個人的な学んだ復習メモ
Cocoa MVC 図解
設計とは
人間にわかりすく小さい機能ごとにソースコードを分けて、改修や追加機能時に関係のないファイルやコードを見なくてもいいようにするための分け方
Model,View,Controller役割
Model
データ、いいね数、年齢とかそれをクラスや構造体にまとめたもの
アプリケーションがどのように動作するべきかコア的な部分をきめるもの
View
画面の描画、人の目につくパーツたち
操作を受け付けるのものたち(Buttonなど)
Controller
タップされたらの処理を書くなど、何かしらの入力に対する適切な処理を行う
(APIなどサーバーと通信、APIなどがモデルにデータを返す、モデルを受け取りViewに返すなど)
なぜ?ViewとModelが完全に独立
原初MVCでは View が Model を監視していためViewの再利用性が低かった。
View も Model のように再利用性の高くするために独立し、両方を Controller が参照する形になった。
Controller の再利用性をあきらめた設計
Cocoa MVCにおいてはController が他のすべてを参照する形になる
ControllerがViewとModelに依存している(Controllerを機能させるためにはViewとModelが必要)になるので再利用性が低い。
まとめ
ModelとViewがお互いのことをまったく知らないのがCocoaMVCの特徴
MVCの悪いところ(Controllerに処理が集中しての記述が多いなど)を改良してのが今トレンドになってたりするアークテクチャだったりする
MVCは逆に依存関係をViewControllerに押し込めたともいえる
おわり
クラスや関数がやるべき役割を見定めて依存を減らしていくことを意識して設計をする、コードを書いていきたいです!
参考