仅具有公共静态方法的帮助程序类

Helper classes with only public static methods

本文关键字:帮助程序 静态方法      更新时间:2023-10-16

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

这是否被认为是不良的 OOP 做法?有没有一种既定的更好的方法来实现这一目标,或者为这样的案例提供一个类似模式的名称,我可以在互联网上进行进一步的研究?

谢谢。

这被认为是不好的 OOP 做法吗?

绝对。事实上,它根本不OOP1。这本身很好,但是使用类是不必要的。

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

是的 — 使用命名空间:"帮助程序"函数几乎绝对没有在类中的位置。

我将与其他人成为这个班级的朋友,以便它也可以在他们的私人成员身上运作。

如果你有很多公共函数访问某种类型的私有成员,这是一个很好的暗示,表明你的接口太宽泛了,或者你的类有太多的事情要做(记住"S"SOLID:每个类一个责任(。是时候重构了。您的帮助程序函数现在可能应该知道您的其他类。相反,其他类应调用这些帮助程序并将数据成员作为参数传递。


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