我的项目包含很多类,其中一些可以用XML文件来描述。别担心,这不是XML中的逻辑或实现。这是一个游戏,一个例子是游戏磁贴可以用XML,图像文件,动画帧等来定义。我应该为此创建一个单独的类吗?
我将最终得到一堆看起来像这样的函数:
public static Foo FromXml(ref XmlTextReader reader) { ... }
问题是这样的:应这些功能被包含在自身的匹配的类,对于上面的一个例子是Foo.FromXml。或者,我应该为阅读文件做一个单独的课程吗?这里似乎有两个通用的指导原则:
- 一个班级应该知道关于一件事的一切 - 本身。
- 一个类应该只有一个理由要改变。
首先,我不太了解第二个,因为“原因”很模糊。第一条指南建议将每位读者放入相关的课程中。第二种说法是让一个类专门用于读取xml文件。但是利弊是有争议的。一方面,每个类可以包含自己的阅读器,所以不会引用十几个类。另一方面,每个类都必须包含System.Xml,如果我更改了我的xml格式,事情可能会在多个文件中更改(但我认为这并不算太糟糕)。
我知道最重要的规则是“用你的大脑”,没有像“正确的”解决方案那样的东西,只有一个好的工作的解决方案。那么你认为更可读性更好,还是更好,可维护?
编辑:澄清,类可以完全不相关。由于它是一种游戏,因此可以是精灵动画类,可以定义敌人的行为,也可以定义地图布局或属性。所以继承与此无关。
考虑一种设计,其中方法不是静态的,而且它们不使用参数参数。参考文献往往是代码气味(你为什么要修改参考?)和静态方法将呼叫者紧密地耦合到该类。 – TrueWill 2009-12-03 04:37:14