我有一个稍微复杂的模型,我目前正在对其进行重构,以使代码更简洁,更易于维护。该模型包含一些主要功能,然后是不同的模型。每个模型又有两个类,一个用于存储(数据),另一个用于模型执行(帮助器)。辅助类在整个主循环中被实例化了数百万次,但依赖于数据类。
现在我已经接近了这样的代码:
main() {
Base* dataptr = chooseInstance(int x);
Base& data = *dataptr;
// do stuff with data
};
Base* chooseInstance(x) { /* returns instance of A:Base or B:Base */ };
随后,我有一个特定于 A 或 B 的辅助类,需要在整个程序中重复调用。目前我正在处理这个:
...
HelperBase* helper = data.getHelper(); // returns custom *HelperA or *HelperB class
helper->doStuff();
...
这种方法效果很好,但感觉不是很优雅。这是不是用模板等更好地处理的事情?
我意识到这个问题有点含糊,因为它更多的是风格问题而不是特定的正确/错误问题 - 对此表示歉意。