C++ 仅使用公共静态方法的帮助器类

C++ 仅使用公共静态方法的帮助器类,c++,oop,design-patterns,static,C++,Oop,Design Patterns,Static,我希望仅使用公共静态方法创建一个帮助器类。我声明一个类而不是名称空间,因为我将使这个类与其他类成为朋友,这样它也可以对它们的私有成员进行操作 这被认为是一种糟糕的OOP实践吗?有没有一个更好的方法来实现这个目标,或者像这样的案例有一个模式,我可以在互联网上做进一步的研究 谢谢 这被认为是一种糟糕的OOP实践吗 当然。事实上,这根本不是OOP1。这本身很好,但使用类是不必要的 是否有更好的方法来实现这一目标 是-使用名称空间:“helper”函数在类中几乎没有位置 我会和其他人成为朋友,这样他们的

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

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

谢谢

这被认为是一种糟糕的OOP实践吗

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

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

是-使用名称空间:“helper”函数在类中几乎没有位置

我会和其他人成为朋友,这样他们的私人成员也能参与进来

如果您有很多公共函数访问某个类型的私有成员,这就很好地暗示了您的接口太宽,或者您的类有太多的事情要做(请记住“s”字:每个类只负责一项任务)。是时候重构了。您的助手函数现在可能已经了解了其他类。相反,其他类应该调用这些帮助程序并将数据成员作为参数传递


1 OOP并不意味着“此代码使用类”。相反,它是一种编写代码的方法,通过行为对数据进行逻辑分组,以实现封装、抽象和(运行时)多态性。类是实现这一目标的工具,但它们本身并不是一个目标。执行您打算执行的操作不会对数据及其行为进行分组(相反,如果有的话,它会将其拆分),也不会帮助抽象、封装或多态性

这被认为是一种糟糕的OOP实践吗

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

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

是-使用名称空间:“helper”函数在类中几乎没有位置

我会和其他人成为朋友,这样他们的私人成员也能参与进来

如果您有很多公共函数访问某个类型的私有成员,这就很好地暗示了您的接口太宽,或者您的类有太多的事情要做(请记住“s”字:每个类只负责一项任务)。是时候重构了。您的助手函数现在可能已经了解了其他类。相反,其他类应该调用这些帮助程序并将数据成员作为参数传递



1 OOP并不意味着“此代码使用类”。相反,它是一种编写代码的方法,通过行为对数据进行逻辑分组,以实现封装、抽象和(运行时)多态性。类是实现这一目标的工具,但它们本身并不是一个目标。执行您打算执行的操作不会对数据及其行为进行分组(相反,如果有,它会将其拆分),也不会帮助抽象、封装或多态性。

好吧。。。也许我会重构,将功能放在类中。或者干脆忽略好的OOP实践,去做一点功能性的工作。@corsel这也不是好的功能性实践。为什么?作为数据容器的小类和修改数据的无状态函数不是或多或少都是小类吗?一个没有字符的混合体,然后我猜:)好吧,我只是看了一下函数式编程的概念,是的,它也不适合在那里。嗯。。。也许我会重构,将功能放在类中。或者干脆忽略好的OOP实践,去做一点功能性的工作。@corsel这也不是好的功能性实践。为什么?作为数据容器的小类和修改数据的无状态函数不是或多或少都是小类吗?一个没有字符的混合体,然后我猜:)好吧,我只是看了一下函数式编程的概念,是的,它也不适合那里。