私はクラスが1つしかない非常に単純なプログラムを書いています。また、独自の例外を導き出したいのですが、新しいファイルを使用する必要はありません。これは大丈夫ですか、それとも正確に関連していない複数のクラスを1つのファイルに含めるのは悪いコーディングですか?
2 に答える
小さなプロジェクトでは問題ありませんが、それよりも大きなプロジェクトでは、すぐにメンテナンスの頭痛の種になる可能性があります。
ファイルと名前空間の両方でクラスを分類すると、整理に役立ち、探しているものをどこで見つけることができるかがより直感的になり、(バージョン管理で)変更を追跡するのがはるかに簡単になります。
依存関係の問題もありますが、これはおそらく最も重要な問題です。その例外を別の場所で使用したい場合はどうでしょうか。実装ファイルを含めることはできません。また、他の無関係なクラスと共有されるヘッダーを保持している場合でも、新しい変換ユニットを不要な記号で汚染することになります。
多くのことと同様に、答えは場合によるということだと思います。この場合、問題は、例外がクラスにどの程度密接に結合されているかです。クラスが呼び出されFooBarBaz
、例外が呼び出されFooBarBazException
た場合、誰もそれを他の場所で使用したいとは思わないので、クラスと一緒にパッケージ化しても問題ないと思います。(実際、FooBarBaz のネストされたクラスであるべきだと主張するかもしれません。)
とは言っても、例外を書くときは、特定のクラスではなく原因に結びつけるようにしています。たとえば、圧縮ライブラリを作成していて、いくつかの異なるアルゴリズムをサポートしている場合DataCorruptionException
、破損の検出を伝える単一のクラスを作成することがあります。次に、例外メッセージを使用して、例外の発生元のクラス/関数など、より詳細な情報を提供できます。