我正在编写一个C++项目,并且正在考虑编写一些总是具有相同参数和相同输出的函数,而且不同(和不相关)的类将使用它们.但我现在不情愿,因为我觉得这样的"方便"功能并不像它应该的OOP那样,我应该为这些功能编写一个最小的类.那么,从C++的角度来看,便利函数是一个很好的OOP编程实践吗?这是一个糟糕设计的标志吗?
举例说明:
假设我们有两个类,class Sphere并且class Pillow.Bot有一些成员变量char[8] hash用于某些(可能是不同的)散列原因,但总是使用相同的散列算法.现在我有三个选择:
makeHash()为每个类实现一个成员函数makeHash()由类调用的便捷函数Sphere和Pillow同父类的子类我不喜欢第一个,因为它创建重复的代码,我不喜欢最后一个选项,因为它导致"类的集群",其中每个类或多或少是另一个类的相对(这显然是糟糕的OOP).
当然,OOP更像是一种艺术(有时是宗教),而不是一门精确的科学.但是,在OOP中进行设计时,创建便利功能通常是一种很好的做法吗?