这应该是命名空间还是类?

Pau*_*nta 3 c++ coding-style

当您拥有一组在它们之间没有交互的函数时,将它们放在命名空间中.(例如,math命名空间.)

当你有一些公共属性和一些作用于这些属性的函数时,它应该成为一个类.

但是当你有一组相关的功能但没有公共属性时呢?一个例子是一个事件管理器:您可能只拥有subscribe(),post()和dispatch()无公共属性; 但是你确实有隐藏的属性,比如订阅者列表和三个函数所依赖的事件队列.这应该是一个类还是命名空间?

out*_*tis 8

任何时候你有行为和状态它应该是一个类,即使该状态不公开.这样做的一个实际原因是它可以更容易地对与相关模块交互的其他模块进行单元测试.