モデルビューコントローラー、モデルビュープレゼンター、モデルビューViewModelなどについて読んでいますが、一般的に、基本的な概念は非常に理解しやすいようです。可能。デザインチョコレートにロジックピーナッツバターは含まれていません。クール、私はそれが好きです。
問題は、その3番目の部分についてはまだ少し曖昧だということです...モデルまたはビューではありません。誰もがそれを何と呼ぶべきか、何をすべきか、何が適切で、何が間違っているのか、自分の考えを持っているようです...それはプレゼンターの仕事だからです。
私はとりとめのないです。
それらの違いを誰かに説明するように頼むのではなく、すでに何度も行われているので(私は知っています;数え切れないほど多くの記事を読んでいます)-私は私は自分でモデルを作った少数のプログラマーです。
そうは言っても、このデザインをどのように分類しますか?そしておそらくもっと重要なことですが、これについて明らかに悪いことはありますか?確かに、これが本当に堅実な設計であれば、私は良いことをしていると聞きたいと思いますが、賞賛よりもむしろ堅実なアドバイスを与えられるでしょう。
注:Model-View-の神秘的な3番目の部分に「ブリッジ」を使用しますか?それが「すべき」であるという潜在意識の提案を避けるため。
モデル
- データに対する権限です。
- リクエストされた変更に関する情報をブリッジから受け取ります。
- データが他のデータにどのように関連するかについてのすべてのロジックを含み、実行します。
データが変更されたときにブリッジに通知します(ブリッジが関心を示したデータについて)。表現の編集:外部のサブスクライバー(何も知らない)が、その状態または計算結果をモニターできるようにします。- ビューに関する知識がありません。
見る
- ユーザーにデータを表示および操作する方法を提供することに関心があります。
- ブリッジからデータ更新に関する情報を受け取ります。
- ユーザーにデータとコントロールを提示する方法のすべてのロジックを含み、実行します。
- ユーザーがモデルに(おそらく)影響を与えるアクションを実行したときに、ブリッジに通知します。
- 興味のある情報をブリッジに通知します。
- モデルに関する知識がありません。
ブリッジ
- モデルとビューの間のコーディネーターおよびトランスレーターです。
- モデルとビューの間で受け渡される情報に適切なフォーマット変更を加えます。
- 「誰が何を知る必要があるか」に関する情報を保持します。
- モデルとビューの両方の知識がある。
その他の注意事項
- より複雑なプログラムでは、複数のモデルが存在するのが一般的です。この状況では、ブリッジは通常、複数のモデル間の調整/翻訳の仕事を引き受けるため、protocall / API / designモデルの構築対象の権限になります。(たとえば、カードゲームプログラムを構築し、代替のデッキシャッフルモデルを構築する場合、ブリッジを使用して、ブリッジとの適切な通信に必要な機能を決定する必要があります。)
- ビューとモデルが1つだけの小さな単純なプログラムでは、ブリッジがどちらの側でどの機能を使用できるかを「想定」するのが一般的です。ただし、プログラムがより複雑になると、非効率性とバグのある仮定を回避できるように、ビューとモデルが機能をブリッジに報告することをお勧めします。
ほぼカバーしていると思います。どうしても、私が使用する傾向のあるデザインについて質問がある場合は歓迎します。また、提案をお勧めします。
そしていつものように、お時間をいただきありがとうございます。