iOSアーキテクチャ勉強
MVC(Cocoa MVC)
- View
- 表示、入出力
- Controller
- 入力に基づくModelとViewの制御
- Model
- データの保持、通信
ViewControllerがViewとControllerの役割を両方持つため肥大化しがち
Massive View Controllerとか呼ばれる
普通言われるMVCとはModelがデータの変更をViewに通知すると言う点で違う
MVP
MVCと違い入力を受け付けるのがControllerではなくViewになるViewControllerはViewとして扱われる
- Supervising Controller
- データバインディングによりViewがModelを監視し、データ更新があれば表示も更新する
- データを加工せずに表示できるのでPresenterの負担を軽減できるがModelがViewのレイアウトに依存する
- Passive View
- 必ずmodelとViewの間はPresenterが介すのでViewとModelが分離するがPresenterの負担増
MVVM
ViewとViewModelをデータバインディング。MVPと違うのはMVPはデリゲートやインターフェイスで処理を移譲・更新処理を行うのに対して、MVVMではデータバインディングでViewとViewModelを紐づける
クリーンアーキテクチャ
- GUIアーキテクチャ MVC,MVP,MVVMなどUIに関するロジック
クリーンアーキテクチャはUIに関するロジック(プレゼンテーション層)とシステムに関するロジック(ドメイン)を分離するのが目的
3階層システム
- プレゼンテーション層(ユーザーインターフェース層)html,swift, ページの表示、ページ間の遷移、ユーザーが入力した内容をビジネスロジック層に受け渡す処理などを行う、
- ビジネスロジック層(アプリケーション層)php,python,ruby プレゼンテーション層、データアクセス層がすること以外が全部ここ。
- データアクセス層 sql CRUDのしょりをおこなう
よくMVCとかMVVMとかは全部プレゼンテーション層の話
参考
:https://qiita.com/os1ma/items/7a229585ebdd8b7d86c2
https://www.ibm.com/jp-ja/cloud/learn/three-tier-architecture
https://qiita.com/navitime_tech/items/602d3286f23952ae0149#mvp-model-view-presenter
Author And Source
この問題について(iOSアーキテクチャ勉強), 我々は、より多くの情報をここで見つけました https://qiita.com/rikuya_0410/items/d1db186920f4156aef57著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .