我正在开发一个从输入目录中读取文件,对其进行处理并
将它们加载到数据库。 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的成员变量(或),如果我将其声明为
静态全局变量?
最佳答案
我想,审计是某种日志?您必须对其目的做出决定。
如果它是一个通用日志,并且可以选择存储有关导入状态的信息,则应将其设置为单例(一种“安全”的全局变量)。它与OOP规则一致,但所有相关方都可以轻松使用该类。
如果它是专门为存储有关导入状态的信息而设计的,则它必须可供执行计算的对象使用,但应存储在上一层(例如,在包含所有计算对象列表的对象中)。在您的情况下,FileList应该是Audit的父级(例如,它应该保持其生命周期),但是CurrentFile应该在构造函数中获取Audit的实例,以便可以在其中存储计算结果。在两种情况下,如果您打算实施多任务,请多加注意。