首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展用于调试的类:公共API、隐藏实现还是其他什么?

扩展用于调试的类:公共API、隐藏实现还是其他什么?
EN

Software Engineering用户
提问于 2014-10-29 09:15:06
回答 1查看 636关注 0票数 1

我正在进行一个涉及3D绘图的相当大的项目,我想添加一些可视化工具(例如,查看对象的边界框),以使调试更容易。然而,我在决定如何做这件事上遇到了问题。

一种选择是创建一个公共函数来绘制可视化器,并在我从UI启用调试时调用该函数。这样做的优点不是修改现有的函数,而是用一个新函数扩展类。缺点是“创建依赖关系”,正如我的一位同事所说,我们需要修改基类和所有派生类来添加这个函数。

另一个选项是修改现有的绘图函数,以便它处理可视化器的绘图。这隐藏了实现的细节,但在我看来,它使代码不那么模块化。

还有一个选项是扩展类,在绘图函数中添加可视化工具,并在启用调试时交换类。Mixins会有所帮助,但C++不支持这一点。

做这件事的最佳方法是什么?我正在寻找一个解决方案,是模块化和尊重坚实的原则。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-10-29 10:03:39

如果你想要实心,我主要选择S(反应能力)和D(情感注射):

例如,对于边框:

  1. 使用drawBox方法创建一个基本抽象类。
  2. 创建“常规”实现(例如,它什么也不做)和“调试”实现。
  3. 默认情况下,类将使用常规实现,但将允许(通过构造函数/方法,或通过使用工厂)注入其他实例。

让我们查查

S:每个类只做一件事(您的商务舱没有“调试模式”或“生产模式”)。

O:如果您创建了抽象类的一个新子类,则不需要更改您的业务类来使用它。

D:嗯,依赖注入是使用的机制。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/261212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档