Helper类只有公共静态方法

时间:2018-05-21 15:35:43

标签: c++ oop design-patterns static

我希望仅使用公共静态方法创建一个帮助器类。我声明一个类而不是命名空间,因为我将与其他人成为这个类的朋友,这样它也可以在他们的私有成员上运行。

这被认为是一个糟糕的OOP练习吗?有没有一种既定的更好的方法来实现这个目标,或者像这样的案例给出类似模式的名称,我可以在互联网上做进一步的研究吗?

感谢。

1 个答案:

答案 0 :(得分:4)

  

这被认为是一个糟糕的OOP练习吗?

绝对。事实上,它只是 OOP 1 。这本身就很好,但是使用课程是不必要的。

  

是否有更好的方法来实现这一目标

是 - 使用名称空间:“帮助程序”函数几乎绝对没有在类内部放置。

  

我将与其他人成为这个班级的朋友,以便它也可以对他们的私人成员进行操作。

如果您有许多公共函数访问某个类型的私有成员,那么这是一个很好的暗示,您的界面太广泛,或者您的类有太多事情发生(请记住“S”SOLID:每个单一责任类)。现在是重构的时候了。您的帮助函数现在可能应该知道您的其他类。相反,您的其他类应该调用这些帮助程序并将数据成员作为参数传递。

1 OOP 表示“此代码使用类”。相反,它是一种编写代码的方法,该代码在逻辑上将数据与行为分组,以实现封装,抽象和(运行时)多态。类是实现这一目标的工具,但它们本身并不是一个目标。做你打算做的事情并不是对数据及其行为进行分组(相反:如果有的话,它将它分开)并且它不会有助于抽象,封装或多态。