我有一个名为SolarPosition
的类,它有许多成员函数。我目前有一个名为CalculateSolarAzimuthAndAltitude
的成员函数,它是重构的主要候选者。
我发现将它重构为CalculateSolarAzimuth
和CalculateSolarAltitude
的唯一方法是添加额外的十个成员变量,因为两个函数都使用了一些初步计算。
我是否应该对具有两个职责的成员函数感到满意,或者是多个临时成员变量是一个合理的牺牲,以便将其拆分?
答案 0 :(得分:4)
我的建议是将职责分为两个成员职能。如果引入了10个附加瞬态变量,则可以定义结构以将它们组合在一起,并在SolarPosition类中定义该结构中的成员。这也将提高可读性。
如果您仍希望通过隐藏类声明中的内部数据变量来使SolarPosition类更清晰,请参阅pimpl-idiom。有关更多信息,请访问:Is the pImpl idiom really used in practice?
答案 1 :(得分:1)
如果您要添加许多其他变量,我怀疑您的SolarPosition类中还有一个隐藏的附加类。考虑提取该课程并从那里继续。