MVC
を使用しています。MVP
またはVIPER
パターンをプロジェクトの一部に使用します。同じプロジェクトで複数のアーキテクチャパターンを持つことは大丈夫ですか?これは良い練習ですか?iosで同じプロジェクトに複数のアーキテクチャパターンを使用してもかまいません
答えて
私の反応は少しばかげているが、それ以上のものだと思う。新しいアーキテクチャ、特に古いコンベンションよりも優れているアーキテクチャが出現すると、それらの上に移動/試してみることが理にかなっています。今質問はあなたが無期限にそれをそのままにして、いいえと言うだろうか?あなたは時間があるとき/あなたは間違いなく新しいアーキテクチャにそれをリファクタリングする必要があります。それはちょうど私の2セントです。
非常に良い質問@マールロン。まず、View、Controller、Interactor、Presenter、RoutingなどのVIPERコンポーネント間の責任分担について説明します。
これは、開発中に時間の経過と共に変化する味についてです。そこには、MVC、MVVP、MVVMなどのような多くのアーキテクチャパターンがあります。私たちの好みが変わると、MVCからVIPERに変わります。誰かがMVVPからVIPERに変更されます。
クラスのサイズを線の数で小さく保つことによって、健全なビジョンを使用してください。 ViewController自体にデータソースメソッドを保持するか、UITableViewDatasoruceプロトコルに準拠したカスタムオブジェクトを作成します。
ビューコントローラをスリムに保つための私の目的と、すべてのメソッドとクラスは、単一責任の原則に従います。
Viperは、非常に粘着性の低い結合ソフトウェアを作成するのに役立ちます。
この開発モデルを使用する前に、クラス間で責任の分布を正しく理解する必要があります。
iOSのおっととプロトコルの基本的な知識があれば、このモデルはMVCほど簡単です。
問題なく、新しいモジュールまたは既存のリファクタのために新しいパターンを使用することができます。 1つはどこかから始める必要があります。
これらはすべて、時間の経過とともにアプリケーションの進化に伴ってアーキテクチャの侵食を抑制します。
- 1. 複数のスレッドが同じ変数に同じ値を書き込んでも構いませんか?
- 2. 複数のテーブルで同じFKを使用しています。
- 3. Map3とEngineを同じプロジェクトで使用していますか?
- 4. プロジェクトで未使用のコンポーネントを使用しても構いませんか?
- 5. 同じオブジェクトプロパティの複数のアクセスのショートカットとして変数を作成しても構いませんか?
- 6. hrefで同じ.progressに複数のバーが機能していませんか?
- 7. シリアライズ後に複数のクラスで同じマップを使用していますか?
- 8. 同じLaravelプロジェクトで複数のルートを使用できますか?
- 9. 同じプロジェクトで複数のJSF実装を使用できますか?
- 10. どこでも同じコンテキストを使用していますか?
- 11. 私はどのアーキテクチャパターンを使用していますか?
- 12. sprintf同じ値を複数回使用しています
- 13. クラスセレクタの複数の組み合わせに同じCSSを使用していません
- 14. 複数のHttpWebRequestsで同じCookieContainerを使用しても安全ですか?
- 15. 同じアクティビティ内で複数のレイアウトを変更/使用していますか?
- 16. 同じテストプログラムで複数のテストインターフェイスを使用していますか?
- 17. 複数のサーバーで同じPGPキーを使用していますか?
- 18. 複数のスプライトで同じアクションを使用していますか?
- 19. 同じドメインで複数のsmtpサーバを使用していますか?
- 20. 複数のUITableViewCellサブクラスで同じxibを使用していますか?
- 21. 同じプロジェクト内の複数のインタプリタをpycharmしますか?
- 22. plistを使用しても問題ありませんか? iOS
- 23. C++で同じ文字列に対してstring.substr(x、y)を複数回使用できませんか?
- 24. JOINされたマッピングテーブルを同じテーブルの複数のフィールドよりもうまく使用していますか?
- 25. 同じtry-with-resourcesブロック内で2つのprepared statementを使用してもかまいません。
- 26. 複数のプロジェクト間で同じhibernateマッピングファイルを使用する
- 27. 複数のプロジェクトで同じモジュールを使用する
- 28. 同じVMに対して複数のRecovery Vaultを使用できますか?
- 29. 同じプロジェクトに複数のエミュレータを使用する
- 30. 同じマスタテーブルに複数のリレーションシップを作成できません