私のプロジェクトには多くのクラスが含まれており、その多くは XML ファイルで記述できます。心配する必要はありません。XML のロジックや実装ではありません。これはゲームです。たとえば、ゲーム タイルを XML、画像ファイル、アニメーション フレームなどで定義できます。
私は次のような関数の束を持つことになります:
public static Foo FromXml(ref XmlTextReader reader) { ... }
問題は、これらの関数が独自の一致するクラスに含まれている必要があるかどうかです。たとえば、上記の関数は Foo.FromXml になります。または、ファイルから読み取るための別のクラスを作成する必要がありますか? ここで競合する 2 つの一般的なガイドラインがあるようです。
- クラスは、1 つのこと、つまりそれ自体についてすべてを知っている必要があります。
- クラスを変更する理由は 1 つだけにする必要があります。
まず、2つ目は「理由」があいまいでよくわかりません。最初のガイドラインは、各リーダーを関連するクラスに配置することを提案しています。2 つ目は、xml ファイルの読み取り専用のクラスを 1 つ作成することです。しかし、長所と短所は議論の余地があります。一方では、各クラスに独自のリーダーを含めることができるため、多数のクラスが参照されることはありません。一方、すべてのクラスに System.Xml を含める必要があり、xml 形式を変更すると、複数のファイルで状況が変わる可能性があります (ただし、それほど悪いことではないと思います)。
最も重要なルールは「頭脳を使う」ことであり、「正しい」解決策など存在しないことを私は知っています。では、より読みやすく、さらには保守しやすいものは何だと思いますか?
編集:明確にするために、クラスはまったく無関係である可能性があります。これはゲームなので、1 つはスプライト アニメーション クラスであり、1 つは敵の動作を定義し、1 つはマップ レイアウトまたはプロパティを定義します。したがって、継承はこれとは何の関係もありません。