我什么时候应该将特定 class 的静态方法标记为私有而不是 public?
When should I mark the static method of a specific class as private other than public?
我什么时候应该将特定 class 的静态方法标记为私有而不是 public?
在做这样的考虑时,我应该考虑哪些方面。
将静态方法标记为私有有什么好处?
任何简单的例子都将不胜感激,这可以帮助我完全理解这件事。
更新:
根据 this answer,它说[强调我的]:
This function could easily have been made freestanding, since it doesn't require an object of the class to operate within. Making a function a static member of a class rather than a free function gives two advantages:
It gives the function access to private and protected members of any object of the class, if the object is static or is passed to the function;
It associates the function with the class in a similar way to a namespace.
如何完全理解上面的说法?
方法(静态或其他)的一般规则是尽可能将它们设为私有——即除非您绝对需要它们可以从其他 classes 调用(也就是说,您需要它们成为你 class 的 public API)
的一部分
尽可能私有化的原因很简单:在未来,您将能够更改任何私有内容,而不会破坏为调用而编写的其他一些 classes旧版本的方法。更改 public 方法更成问题,因为其他 classes 可能依赖于它。
我什么时候应该将特定 class 的静态方法标记为私有而不是 public?
在做这样的考虑时,我应该考虑哪些方面。
将静态方法标记为私有有什么好处?
任何简单的例子都将不胜感激,这可以帮助我完全理解这件事。
更新:
根据 this answer,它说[强调我的]:
This function could easily have been made freestanding, since it doesn't require an object of the class to operate within. Making a function a static member of a class rather than a free function gives two advantages:
It gives the function access to private and protected members of any object of the class, if the object is static or is passed to the function;
It associates the function with the class in a similar way to a namespace.
如何完全理解上面的说法?
方法(静态或其他)的一般规则是尽可能将它们设为私有——即除非您绝对需要它们可以从其他 classes 调用(也就是说,您需要它们成为你 class 的 public API)
的一部分尽可能私有化的原因很简单:在未来,您将能够更改任何私有内容,而不会破坏为调用而编写的其他一些 classes旧版本的方法。更改 public 方法更成问题,因为其他 classes 可能依赖于它。