※ ChatGPTを利用し、要約された質問です(原文:【C++】制御系のシステムは巨大クラスになる??)
C++制御系のシステムは巨大クラスになる?
(1)ユーザ操作起因の「画面上の操作」(リストボックスの選択なり、ボタンのクリックなり)
と、
(2)非ユーザ操作
(デバイスからのコールバックや、
マルチキャストでPUSH通信されたデータの受取のコールバック等の処理)
が混在するシステムを作る際、
それぞれのイベントを集中管理するための、制御用クラスを作る関係なのか、
巨大なクラスになるのはよくあることなのでしょうか?
/----------------------------------------------------/
以下のようにクラス分割する案は可能でしょうか?
巨大クラスにする案と、分割案では、どちらを採用することが多いでしょうか?
(1)-(1)画面Aのイベント通知クラス
(1)-(2)画面Bのイベント通知クラス
: 画面Cの・・・
:
(2)-(1)非画面のイベントXの通知クラス
(2)-(2)非画面のイベントYの通知クラス
:
:
(3)各イベントの通知を受け、次にどんな処理をするか?を振り分けるクラス
(4)-(1)画面Aの処理を実行するクラス
(4)-(2)画面Bの処理を実行するクラス
: 画面Cの・・・
:
(5)-(1)非画面系Xの処理を実行するクラス
(5)-(2)非画面系Yの処理を実行するクラス
/----------------------------------------------------/
また、後者の案を採用しても、
「(3)各イベントの通知を受け、次にどんな処理をするか?を振り分けるクラス」
は、コーディング行数的には、小さく分割はされても、
「(3)」は、各クラスを持っていなければ、処理の委譲ができないため、
(3)
↑
________
| | | |
(1) (2) (4) (5)
のような構造にならざるを得ず、
「コーディング行数」は分割できても
「保持クラス数」は巨大なままにならざるを得ないでしょうか?
お礼
ありがとうございます。 1.どこからコールバックされたか?を元に、 2.次にどんな処理をするのか?(単一の関数(メソッド)を呼び出すだけ) を次の処理を行ってくれるクラスに通知(メソッドの呼び出し) が適切なのかなと感じました。 .