c++ - 我应该争取具有单一职责的成员函数还是尽量减少成员变量的数量?

标签 c++ design-patterns refactoring

我有一个名为 SolarPosition 的类,它有很多成员函数。我目前有一个名为 CalculateSolarAzimuthAndAltitude 的成员函数,它是重构的主要候选对象。

我发现将其重构为 CalculateSolarAzimuthCalculateSolarAltitude 的唯一方法是添加额外的十个成员变量,因为这两个函数都使用了一些初步计算。

我应该对具有两个职责的成员函数感到满意,还是多个 transient 成员变量是合理的牺牲以将其拆分?

最佳答案

我的建议是将职责拆分为两个成员函数。如果引入十个额外的 transient 变量,您可以定义一个结构将它们组合在一起,并在 SolarPosition 类中定义该结构的成员。这也将提高可读性。

如果您仍想通过在类声明中隐藏内部数据变量来使 SolarPosition 类更简洁,请参阅 pimpl-idiom。如需更多信息,请访问:Is the pImpl idiom really used in practice?

关于c++ - 我应该争取具有单一职责的成员函数还是尽量减少成员变量的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42701548/

相关文章:

c++ - 如何获取枚举的下一个值

c++ - 为什么这个 sfinae 不起作用?

Java 设计模式,用于将相同输入的不同变体转换为通用输出

javascript - 仅设置一次模块属性

c++ - 如何重构嵌套的for循环?

c# - 有什么理由不重构它,使其更简单吗?

c++ - Cmake 报错 undefined reference to `pthread_create'

c++ - 无法链接 GLFW 库

java - 通过扩展组合两个接口(interface)或将接口(interface)强制转换为其实现类型更好的做法是什么?

c# - 如何交换两个 SyntaxNode (Roslyn C#)