考虑以下代码,请记住,我主要处理JavaScript和T-SQL:
static void Main(string[] args)
{
Program p = new Program();
logToEventLog("Task Started", EventLogEntryType.Information);
p.moveAndRenameAllFiles();
p.processReports();
logToEventLog("Task Ended", EventLogEntryType.Information);
}
对
static void Main(string[] args)
{
logToEventLog("Task Started", EventLogEntryType.Information);
moveAndRenameAllFiles();
processReports();
logToEventLog("Task Ended", EventLogEntryType.Information);
}
第一种方法完全按照其说的进行。第二种方法将文件插入数据库,从文件名中获取一些信息以进行识别。
在此比较中,初始化一个单独的实例时我没有看到一个值吗?
答案 0 :(得分:1)
保持Program
实例唯一有用的事情是对象可以保持状态而不使用静态变量的可能性。
例如,如果moveAndRenameAllFiles
将存储某些数据,以后由processReports
使用,则在静态上下文中执行相同的操作将需要使用静态变量。
除了帮助您测试实现的能力之外,在必须重构以同时运行Program
方法的几个实例的情况下(例如,在处理多个网络位置时),缺少静态变量会有所帮助。
“无状态”实现没有优势。