我正在进行一个涉及3D绘图的相当大的项目,我想添加一些可视化工具(例如,查看对象的边界框),以使调试更容易。然而,我在决定如何做这件事上遇到了问题。
一种选择是创建一个公共函数来绘制可视化器,并在我从UI启用调试时调用该函数。这样做的优点不是修改现有的函数,而是用一个新函数扩展类。缺点是“创建依赖关系”,正如我的一位同事所说,我们需要修改基类和所有派生类来添加这个函数。
另一个选项是修改现有的绘图函数,以便它处理可视化器的绘图。这隐藏了实现的细节,但在我看来,它使代码不那么模块化。
还有一个选项是扩展类,在绘图函数中添加可视化工具,并在启用调试时交换类。Mixins会有所帮助,但C++不支持这一点。
做这件事的最佳方法是什么?我正在寻找一个解决方案,是模块化和尊重坚实的原则。
发布于 2014-10-29 10:03:39
如果你想要实心,我主要选择S(反应能力)和D(情感注射):
例如,对于边框:
drawBox方法创建一个基本抽象类。让我们查查
S:每个类只做一件事(您的商务舱没有“调试模式”或“生产模式”)。
O:如果您创建了抽象类的一个新子类,则不需要更改您的业务类来使用它。
D:嗯,依赖注入是使用的机制。
https://softwareengineering.stackexchange.com/questions/261212
复制相似问题