我有一个实用程序类,它不会保存任何数据成员,只是通过其方法提供一些服务。在这种情况下,哪种方法更好,使用所有静态方法创建一个类,或者使用普通方法创建一个类,并通过创建类的对象来调用它们?这两种方法的优点和缺点是什么?
答案 0 :(得分:1)
如果您没有数据成员,则没有理由使用具有成员方法的类。你必须创建一个类的实例来调用你的方法(一个小但可避免的开销)
调用类的静态方法不会产生任何开销。对于命名空间中的函数也是如此。
答案 1 :(得分:1)
我认为最好的选择是使用namespace
和免费功能。原因:
使用普通方法的class
会让人感到困惑,因为它需要实例化但没有状态。
使用仅使用静态方法的class
会更好,但要求用户始终指定类的名称。
使用namespace
和免费函数可防止混淆/不必要的实例化,并允许用户对namespace
进行别名或使用using namespace
以避免重复使用同一范围内的多个函数。 namespace
也可以跨多个文件。