仅具有公共静态方法的帮助程序类
Helper classes with only public static methods
我希望创建一个仅使用公共静态方法的辅助类。我声明一个类而不是命名空间,因为我会让这个类与其他人成为朋友,以便它也可以在他们的私有成员上运行。
这是否被认为是不良的 OOP 做法?有没有一种既定的更好的方法来实现这一目标,或者为这样的案例提供一个类似模式的名称,我可以在互联网上进行进一步的研究?
谢谢。
这被认为是不好的 OOP 做法吗?
绝对。事实上,它根本不是OOP1。这本身很好,但是使用类是不必要的。
有没有更好的方法来实现这一目标
是的 — 使用命名空间:"帮助程序"函数几乎绝对没有在类中的位置。
我将与其他人成为这个班级的朋友,以便它也可以在他们的私人成员身上运作。
如果你有很多公共函数访问某种类型的私有成员,这是一个很好的暗示,表明你的接口太宽泛了,或者你的类有太多的事情要做(记住"S"SOLID:每个类一个责任(。是时候重构了。您的帮助程序函数现在可能应该知道您的其他类。相反,其他类应调用这些帮助程序并将数据成员作为参数传递。
1OOP 并不意味着"此代码使用类"。相反,它是一种编写代码的方法,该代码对具有行为的数据进行逻辑分组,以实现封装、抽象和(运行时(多态性。类是实现这一目标的工具,但它们本身并不是一个目标。做你打算做的事情不会对数据及其行为进行分组(相反:如果有的话,它会将其分开(,也无助于抽象、封装或多态性。
相关文章:
- C++调用具有 *this 属性的单个帮助程序函数
- 尝试了解在导入的静态方法上使用删除方法时的错误
- 用于检查值是否为其任何参数的帮助程序函数
- 如何通过命名空间调用非静态方法
- 类型限定宏帮助程序
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- 如何在没有实例的情况下获取非静态方法的类型?
- 调用从模板派生的类的静态方法,而不指定模板
- 如何在 c++ 中异步调用静态方法?
- C++ 将静态方法转换为简单方法
- 从另一个标头中的标头调用静态方法
- C++中静态方法的局部变量范围
- 无法将 2D 数组传递到 c++ 中的帮助程序函数中
- C2783: 无法推断帮助程序函数的模板参数
- 在何处放置与类方法相关的帮助程序函数C++
- 仅具有公共静态方法的帮助程序类
- 如何从静态方法(信号处理程序)访问类成员和方法
- Wallaroo依赖项和静态帮助程序类
- 在帮助程序方法中包装 std::get<>
- 静态帮助程序类