我的项目包含很多类,其中有一堆可以用 XML 文件描述。别担心,这不是 XML 中的逻辑或实现。这是一个游戏,一个例子是可以在 XML、图像文件、动画帧等中定义游戏图块。
我最终会得到一堆看起来像这样的函数:
public static Foo FromXml(ref XmlTextReader reader) { ... }
问题是:这些函数是否应该包含在它们自己的匹配类中,例如上面的一个是 Foo.FromXml。或者,我应该创建一个单独的类来从文件中读取内容吗?这里似乎有两个竞争的一般准则:
- 一个班级应该知道关于一件事的一切——它本身。
- 一个班级应该只有一个改变的理由。
首先,我不太了解第二个,因为“原因”很模糊。第一个指南建议将每个读者放在相关的类中。第二个说创建一个专门用于读取 xml 文件的类。但利弊是值得商榷的。一方面,每个类都可以包含自己的阅读器,因此没有十几个类被引用。另一方面,每个类都必须包含 System.Xml,如果我更改我的 xml 格式,则可能会在多个文件中发生变化(但我认为这还不算太糟糕)。
我知道最重要的规则是“使用你的大脑”,没有“正确”的解决方案,只有一个好的和有效的解决方案。那么你认为什么会更易读,或者更好,可维护?
编辑:澄清一下,这些类可以完全不相关。既然是游戏,一个可能是精灵动画类,一个可能定义敌人行为,一个可能定义地图布局或属性。所以继承与此无关。