私は物理デバイスを扱うプロジェクトに取り組んでおり、このプロジェクトのいくつかのクラスに適切な名前を付ける方法として混乱しています。
実際のデバイス(センサーとレシーバー)を考慮することと、ソフトウェアでそれらを表現することは別のことであるため、「Info」という接尾辞の名前パターンでクラスに名前を付けることを考えています。
たとえば、a Sensorは実際のセンサーを表すクラスですが(実際に動作するデバイスに実際に接続されている場合)、SensorInfoそのようなセンサーの特性のみを表すために使用されます。たとえば、ファイルの保存時に、をシリアル化するのではSensorInfoなく、ファイルヘッダーにをシリアル化しますSensor。これは意味がありません。
しかし、今私は混乱しています。なぜなら、オブジェクトのライフサイクルには、どちらを使用するべきか、どのように別のものを取得するか、または両方のバリアントを実際に1つのクラスのみに折りたたむかどうかを判断できない中間点があるためです。
また、あまりにも一般的なEmployeeクラスの例は、明らかに実在の人物の表現にすぎませんがEmployeeInfo、私の知る限り、クラスに名前を付けることを提案する人はいません。
私が使用している言語は.NETです。この命名パターンは、これらのクラスの例として、フレームワーク全体で共通しているようです。
DirectoryおよびDirectoryInfoクラス;FileおよびFileInfoクラス;ConnectionInfoクラス(対応するConnectionクラスなし);DeviceInfoクラス(対応するDeviceクラスなし);
だから私の質問は次のとおりです。この命名パターンを使用することについて共通の根拠がありますか?名前のペア(ThingとThingInfo)を使用するのが理にかなっている場合ThingInfoや、Thingクラスが存在しない、またはクラスが存在しない他の場合がありますか?
Foo、インスタンス化できないユーティリティクラスがありFoosます。ネーミングに関しては、重要なことはAPI内の一貫性であり、理想的にはプラットフォーム上のAPI全体です。
Employee例はオンラインまたは古典的な本で数十人に発見されていますが、私はまだ見てEmployeeInfoいません(おそらく従業員は生きているからです接続やファイルなどの技術的な構成要素)。しかし、EmployeeInfoプロジェクトでクラスが提案されることになった場合、それを使用できると思います。

Info接尾辞は区別staticそのステートフル相手方からのユーティリティメソッドを含むクラスを。それ自体は「ベストプラクティス」ではありません。これは、特定の問題を解決するために.NETチームが考案した方法にすぎません。彼らは同じように簡単に出ている可能性FileUtilityとFile、しかし、File.DoSomething()そしてFileInfo.FileNameより良い読みしているようです。