私は開発中であり、最近MVVMデザインパターンを練習しています。 ViewModel &コントローラ間で通信するには、私はClosureを使用しています。私はデリゲートも使うことができることを知っています。しかし、コミュニケーションのために私が従わなければならないどのような慣例や理由がありますか?私はちょっと混乱している。どんな助けもありがとう。ViewModelとコントローラ間の通信に最適な方法
答えて
私もこの答えを探していたと私はこれを発見した、
がにUIレイヤ(UIL)からクロージャを渡しますBusiness Logic Layer(BLL)は、分離の懸念(SOC)を破ります。あなたが準備しているデータはBLLにありますので、基本的に "BLLは私のためにこのUILロジックを実行します"と言っています。それはSOCです。 (詳しくはhttps://en.wikipedia.org/wiki/Separation_of_concernsを参照してください。)
BLLは、代理人通知を介してUILと通信する必要があります。そういう意味で、BLLは本質的に言っています。「ちょっとUIL、私のロジックの実行が終了しました。必要なときにUIコントロールを操作するために使用できるいくつかのデータ引数があります。
だから、UILは決して彼にUI制御ロジックを実行するようBLLに求めてはいけません。 BLLに彼に通知するように頼んでください。
ここではリンクですが、より明確な視点が得られます。
あなたの時間とリンクに感謝します。 – MarkMe
あなたのアプリの構造によって、たくさんのオプションがあります。 1つはシングルトンを使用しています。私はあまりにも複雑なアプリではなく、この方法を好んでいます。シングルトンクラスにあるデータ処理(格納、構造化)。このシングルトンクラスからデータにアクセスするさまざまなビュー。たとえば、DataManagerという名前のシングルトンやそのようなものがあります。このシングルトンから必要なデータにアクセスするさまざまなコントローラやその他の単純な構造。ここで
は、例えば、非常に単純な遊び場コードです:
class DataManager
{
static let sharedInstance = DataManager()
var _value: Int = 0
var value: Int
{
get
{
return _value
}
set
{
_value = newValue
}
}
}
class DemoController1
{
let dm = DataManager.sharedInstance
func incValue()
{
dm.value += 1
}
}
class DemoController2
{
let dm = DataManager.sharedInstance
func mulValue()
{
dm.value *= 2
}
}
let dm = DataManager.sharedInstance
let dc1 = DemoController1()
let dc2 = DemoController2()
print ("value: \(dm.value)")
dc1.incValue()
print ("value: \(dm.value)")
dc1.incValue()
print ("value: \(dm.value)")
dc2.mulValue()
print ("value: \(dm.value)")
- 1. ExtJs 4.2 - ビューとコントローラ間の適切な通信方法
- 2. c#クラス間の通信に最適な方法
- 3. ディレクティブインスタンス間の通信に最適な方法
- 4. ディレクティブ間の通信に最適な方法
- 5. フラグメント間の適切な通信方法
- 6. Ember.js内のコントローラ間の通信方法
- 7. PHP:2つのサーバ間で通信するには最適な方法
- 8. モバイルアプリのショートメッセージ通信に最適な方法
- 9. UISplitViewController - ビューコントローラ間の通信に最適なデザインパターン
- 10. JavaFxコントローラ間の通信
- 11. コントローラ間のjavafx通信
- 12. 兄弟コントローラ間の通信
- 13. モデルとコントローラの間の通信 - iOS
- 14. AngularJS ng-repeatとコントローラ間の通信
- 15. クラス間の双方向通信に最適なパターンは何ですか?
- 16. ハードコードなしでマイクロサービスの通信に最適な方法はどれですか
- 17. (https)phpサーバと(http)PHPサーバ通信の最適な方法は何ですか?
- 18. ViewModels間の通信方法
- 19. モデルからViewModelと通信する方法
- 20. LKMとpthread間の通信方法は?
- 21. WCFサービスとホストアプリケーション間の通信方法
- 22. サービスとViewController間の通信方法
- 23. バックエンドとの通信に最適なプロトコル(iPhoneアプリ用)
- 24. Jax-RSはウェブサービスとの通信に最適なソリューションですか?
- 25. コントローラからviewmodelへのデータの送信方法textbox
- 26. コントローラのviewModelにアクセスする方法
- 27. Demeterの法則に違反することなく、Marionetteモジュール間の通信を処理するのに最適
- 28. サーバ通信にはどのような方法が最適ですか?
- 29. JavaFX異なるウィンドウで2つのコントローラ間で通信を行う方法
- 30. コントローラ間の通信asp.net mvc by viewdata
この場合、通信は変数交換を意味しますか? –
はい。 ViewModelクラスでDataArrayを準備していて、それがコントローラに送られて、私のTableViewに供給されます。 – MarkMe