0

我正在开发一个从输入目录读取文件、处理它们并将它们加载到数据库的应用程序。Filelist 和 CurrentFile 这两个类是应用程序的一部分。类定义如下。

class Filelist
{

   //list of files
   list of files;

   // pointer to the current file
   CurrentFile *ptr
};

class CurrentFile
{

   vector<list of records>

   methods to process the records
   ..
   ..
};

我必须添加另一个审计结构来跟踪成功处理的记录和错误的记录。在处理完所有文件后,此审计结构将加载到数据库中。

struct Recaudit
{
     //record to keep track of
     //Various counts
     int successcnt;
     int errorcnt;
     billedcnt;
     some other counts related to the records
};

该审计记录的数据集跨越 CurrentFile 的多个方法。

可以将此审核记录设为 CurrentFile 的成员变量(或)我应该将其声明为静态全局变量吗?

4

1 回答 1

1

我猜,Audit 是某种日志?你必须对其目的做出决定。

  • 如果它是一个通用日志,可以选择存储有关导入状态的信息,则应将其设为单例(一种“安全”的全局变量)。它符合 OOP 规则,但所有相关方都可以轻松使用该类。
  • 如果它是专门为存储有关导入状态的信息而设计的,它必须可用于执行计算的对象,但应存储在上一级(例如,在包含所有计算对象列表的对象中)。在您的情况下, FileList 应该是 Audit 的父级(例如,它应该保持其生命周期),但 CurrentFile 应该在构造函数中获取 Audit 的实例,以便它可以在其中存储计算结果。在这两种情况下,如果您打算实施多任务处理,请务必谨慎。
于 2013-05-09T09:13:31.200 回答