哪个设计更好:具有硬编码、具体派生类和实例的 ADT 基类,还是其实例从文件输入构建的包罗万象的类?
例子:
class ADTSpell {
ADTSpell(std::string name, int min_damage, int max_damage);
virtual ~ADTSpell()=0;
//...
};
class Fire : public ADTSpell {
Fire() : ADTSpell("Fire", 14, 15) { }
//...
};
/* Other concrete derived classes */
- 或者 -
class Spell {
Spell(std::string name, int min_damage, int max_damage, /*...*/ )
//...
};
File: Spells.txt
Fire 14 15
Heal -3 -5
Ice 5 8