私は現在、通信システムを設計していて、OOP アプローチについてアドバイスを求めています。
これは非常に単純です。シリアル ポートからデータを取得し、そのデータをメッセージに分割してから、それらのメッセージをコードの残りの部分で使用できるものに解析します。たとえば、メッセージは「LightSensorReport」であり、複数のセンサーから収集されたデータが含まれています。この場合のデータは単なる整数値ですが、データがより複雑な場合もあります。
したがって、シリアル ポートはストリーム インターフェイスを実装するクラスと考えています。ストリームを解析するクラスは、そのストリームからデータを取り出し、メッセージの境界がどこにあるかを把握し、メッセージのバイナリ データを「LightSensorReport」などのオブジェクトに変換する別のクラスにそれらのメッセージを送信します。
私の質問は、その最終的なデータ クラスと、それが実際に何であるか (この場合は "LightSensorReport") について考えたことから生まれました。私にとって、それは完全なオブジェクトではありません。状態しかありませんが、そのデータに対して何もしません (つまり、実際にはデータ構造です)。これはにおいですか?これは良いOOPに適合しますか?
LightSensorReport を単なるデータにする理由は、まさにそれです。それはデータのみです。それ自体では実際には何もしませんが、他のクラスがそれを使用します (たとえば、別のクラスが別のプロトコル形式にシリアル化する必要がある場合があります。LightSensorReport は何も知らないため、この責任を LightSensorReport に課しません)。バイナリ プロトコルについて)。
では、この種のクラスは優れた OOP 設計に適合するのでしょうか、それとも私が何か間違った方法で考えている兆候なのでしょうか?