最有效的管理方式:头文件还是静态函数或单例模式?

问题描述 投票:-1回答:1

我在大约800loc的项目中到处都有很多功能。我以为我应该将函数包装在适当的命名空间中的标头中,而我只是#include。然后,我看到了软件工程堆栈交换上的一个线程,其中建议使用静态函数或单重态模式。我想知道这3种方法中哪一种效率更高,负担更少?

c++ c project-management
1个回答
0
投票

如果您需要一些全局资源,则使用“ Singleton”。不仅功能,而且共享资源。 Singleton就像一个具有明确定义的接口的全局变量。从技术上讲,内存分配是一种单例。

如果只需要使用相同的功能,然后将它们打包到一个或多个标头中,这就是人们通常在包括C ++在内的大多数语言中使用的方式。

静态函数只是全局函数的语法糖-具有额外的功能,它们可以访问类的私有变量。

因此,一般而言,我建议:

1]仅在需要全局共享资源时才使用Singleton,但这具有资源始终共享且没有共享资源无法创建两个实例的缺点。如果您要共享全局资源,但可以选择隔离,则最好使用更复杂的方法是上下文模式。

2)如果仅需要一些常规功能,则使用全局功能。

3)如果这些函数牢固地链接到某些类,则使其成为那些类的成员或静态函数。这样,找到所述功能也很方便。

[根据我的经验,我主要选择(3);我将类与成员函数一起使用,即使所说的类只有几个公共成员函数-或者更确切地说,为了在代码中创建某些功能,我实现了一个提供它的新类。]

那是因为通常我发现它是一种使用和重用资源的便捷有效的方法。我经常需要传递我每次使用该类时都不想传递的配置参数和数据-在函数中传递太多参数很烦人,而且重新分配和配置所有内容也需要花费时间。

尽管,这是我的个人喜好,其他人可能会有自己的想法。有些人喜欢使用具有很多输入参数的全局函数……它的优点是通常可以清楚地知道什么是输入,什么是输出。而使用类方法则更加晦涩。

© www.soinside.com 2019 - 2024. All rights reserved.