EDIT:これをクリーンアップして短縮しました。
イベントドリブンアーキテクチャーとMVCアーキテクチャーの利点は、あなたの質問が示唆しているように相互に排他的だとは思いません。イベント駆動型であり、MVCアーキテクチャとの一貫性のあるコードを設計できます。
イベントドリブンとは、特定のイベントが発生したときに実行されるイベントハンドラがあることを意味します。イベントは低レベル(マウスの動きとキーボードの動き)を開始し、ツールキットを介して上位のハンドラに転送します。 MVCは、ハンドラの位置をどのように整理し、ハンドラがビジネスロジックとどのようにインターフェイスするかに関係しています。
EventBusに戻ると、 EventBusを通してすべてのUIイベントを指していて、モデルへのすべての変更がEventBusを経由してビューに戻ると、EventBusライブラリがMVCアーキテクチャのControllerの重要な部分を占めると言えます。
MVCについて考えるとき、私の目標は、ビジネスロジックとデータをデータの提示から切り離すことです。 Eventbusのようなものはあなたがそれを手助けすることができます。あなたのコントローラクラスはあなたのモデルをEventBusに結びつけ、UIを反対側に差し込みます。完了したら、モデルはイベントストリームが与えられたことだけを知っています。イベントストリームがGUI、テスト装置、またはハードウェアデバッガによって供給されるかどうかはわかりません。
しばらくの間、イベント駆動型コードを使用しました。イベント駆動型のコードは、MVCパターンのように動作するという意見に本当に同意します。このMVCパターンでは、ビューからイベントの発生場所がわからない場合があります。しかし、私の質問は、イベント駆動型アーキテクチャはMVCパターンに置き換えることができるという2番目の主張にあります。イベントバスを使用すると(例えば、。)、私のアプリでMVPパターンを使う必要はないと思いますか? – Mehrdad
イベントドリブンがMVCを置き換えるとは言いませんでした。これはMVCと併用することができます。おそらく私はあなたがEvent Drivenの意味を誤解していたでしょう。つまり、低レベルのイベント(タイマーのオーバーフローやユーザーからのボタンのクリック)は、ビジネスロジックを含む上位層まで浸透します。高水準コードは、操作の順序を予測/制御することはできません。実際、いくつかの操作は異なるスレッドで同時に実行することができます。反対にポーリングループのようなものがあります。そこでは、何かが起きるまでタイマーとボタンの状態が繰り返し確認され、ループがハンドラを呼び出します。 – Teto
私はまだ誰かとこれについて議論していましたが、私はまだあなたを誤解しているかもしれません。イベントバスを使用してプログラムを「イベント駆動ではない」ようにすることを示唆していますか?またはMVPではない?イベント駆動型ではない場所でもUIツールキットを見つけるのは難しいです。そして、EventBusは、モデルからビューを隠すのに(すべてではない)長い道のりを歩んでいます。だからあなたはあなたが得られていないと思う恩恵はどれですか?なぜ? – Teto