我试图分解一个长的“主”程序,以便能够修改它,也可能对它进行单元测试。它使用了一些巨大的数据,所以我犹豫了:
最好的是:进行函数调用,并传递可能非常大(内存方面)的数据,
(a) 按价值计算,或
(b) 通过引用
(非常大,我的意思是一些结构和小类的向量的映射和向量......甚至图像......可能真的很大)
(c) 或者拥有所有功能都可以访问的私有数据?这也可能意味着 main_processing() 或其他东西可能具有所有这些的向量,而某些函数将只有一个项目......具有可测试函数的优点。
我的问题虽然与优化有关,但当我试图将这个怪物分解成小怪物时,我也不想耗尽内存。
如果我创建局部变量,我不太清楚我将拥有多少个数据副本。
有人可以解释一下吗?
编辑:这不是通用的“如何将非常大的程序分解为类”。该程序是一个大型解决方案的一部分,该解决方案已经分解为多个小实体。
我正在查看的可执行文件虽然相当大,但它是一个具有不可分割数据的单一实体。因此,数据要么全部创建为我已经创建的单个类中的成员变量,要么将(全部)作为函数的参数传递。
哪个更好 ?