为了保持main()(在c++中)尽可能干净/小,有几个选项你可以选择,但其中哪一个是最好的?在main中初始化所有变量,在main之外初始化它们为global,在.h中初始化它们,在main中初始化它们,但在其他地方设置它们的值(通过将它们传递给函数)。可能有其他方法,但是,保持main()尽可能干净/清晰/小的最佳方法是什么?
避免像猪流感一样的全局/单例,这是一种不好的做法,对大型多线程项目会产生非常糟糕的影响。鉴于你正在使用c++,你可以把你的应用程序包装成一个大的管理器类型类,它的所有东西都很好地融入了一个适合你/你的编码风格的风格,那么你主要需要做的就是:
int main(int argc, char** argv)
{
Application MyApp(argc,argv);
return MyApp.start();
}
非常整洁
有一些常见的模式,比如将数据和操作封装在类中是有意义的。例如,如果您从文件处理命令行参数或配置,您可以创建从argc
和argv
初始化的Config
类和/或可能的文件,然后将其用作用户可控参数的存储。
另一个常见的模式是将所有main
移动到一个类中,该类包含作为成员属性的状态,并具有run
(或main
,您可以随意调用它)成员函数。这样可以轻松地重构main
,而不必将所有状态作为函数参数传递。有时这两个选项混合使用,类从main
的参数初始化。
没有明确的答案,因为这取决于你的main
目前正在做什么,在某些情况下,如果不同的部分被清楚地分开,它仍然可以保持长主,如果它不是太长,其中长和长是主观的衡量标准…