我有一个稍微复杂的模型,我正在重构,试图使代码更清晰,更容易维护。该模型包含一些主要功能,然后是不同的模型。每个模型还有两个类,一个用于存储(数据),第二个用于模型执行(帮助器)。辅助类在整个主循环中实例化了数百万次,但依赖于数据类。
现在我已经接近了这样的代码:
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();
...
这种方法效果很好,但感觉不是很优雅。这是用模板或其他方式更好地处理的东西吗?
我意识到这个问题有点模糊,因为它更多的是风格问题,而不是特定的正确/错误问题 - 为此道歉。