私はマイクロコントローラのCANインターフェイスからフレームをキャプチャするC++クラスAを持っています。私はクラスAによってキャプチャされたフレームを1つずつ使用する別のクラスB(およびCとD ..)を実装しようとしています。本質的に、クラスAは、キャプチャされたフレームを、フレームの内容に応じて上位レイヤからのクラスの1つにリダイレクトする。私はフレームを受け取るたびにイベントがクラスのオブジェクトに対して上位層から呼び出されるような、ある種のイベント処理メカニズム(プログラミングの初心者ではあまり知られていない)を実装する必要がありますか?または、クラスAからクラスB、C、...を継承してこれを達成できますか?ここで良い、簡単なロジックを開発する方法を手伝ってくれますか?異なるクラスのオブジェクト間のイベント処理
編集:私はクラスAのswitch文を持っていて、クラスB、C、Dのいずれかのprocessメソッドを呼び出します。値。しかし、これは賢明な方法ではありません。なぜならクラスAはクラスB、C、D ...などを使用しているからです。クラスAは、クラスB、C、D、などについては知りません。
"仕事/プロセス"関数を宣言するプロセッサーごとに共通のインターフェース(基本クラス)を定義しているでしょう。私はそれらをすべてコンテナに保管します。クラスAを使用してフレームを取得し、それをリストコントローラのそれぞれに渡す「コントローラ」クラスがあります。今、コントローラのリストをどのように生成するかは、注文が重要かどうかに応じて決まります。 –
私は編集を行いました。もう一度見てもらえますか? – Paindoo
私はそれを得る、あなたはクラスB、CまたはDの1つだけがフレームを処理できることを意味します。フィールド値のどれかを知っています。これは、ファクトリデザインパターンの非常に一般的な使い方です。Googleでそれを見てください。どちらが分からない場合は、あまり一般的ではない責任パターンの連鎖を使用することができますが、必要に応じてその疑似コードを書くことができます。 –