便利功能是一种好的做法吗?

ale*_*lex 3 c++ oop

我正在编写一个C++项目,并且正在考虑编写一些总是具有相同参数和相同输出的函数,而且不同(和不相关)的类将使用它们.但我现在不情愿,因为我觉得这样的"方便"功能并不像它应该的OOP那样,我应该为这些功能编写一个最小的类.那么,从C++的角度来看,便利函数是一个很好的OOP编程实践吗?这是一个糟糕设计的标志吗?

举例说明:

假设我们有两个类,class Sphere并且class Pillow.Bot有一些成员变量char[8] hash用于某些(可能是不同的)散列原因,但总是使用相同的散列算法.现在我有三个选择:

  • makeHash()为每个类实现一个成员函数
  • 实现一个makeHash()由类调用的便捷函数
  • 重构完整的设计,使SpherePillow同父类的子类

我不喜欢第一个,因为它创建重复的代码,我不喜欢最后一个选项,因为它导致"类的集群",其中每个类或多或少是另一个类的相对(这显然是糟糕的OOP).

当然,OOP更像是一种艺术(有时是宗教),而不是一门精确的科学.但是,在OOP中进行设计时,创建便利功能通常是一种很好的做法吗?

Mar*_*ram 5

如果您坚持OOP设计,那么您char[8] hash将成为一个真正的Hash课程.然后这解决了你的问题.