有一个原本不应该是静态的类...
public class SapApprovalHandler {
private static SapGs3DataSet sapGs3DataSet;
static SapApprovalHandler() {
try {
// Actually fills the dataset
sapGs3DataSet = new SapGs3DataSet("SAP");
}
catch {
throw new ApplicationException("Unable to create the SAP-GS3 DataSet");
}
}
public static XElement ProcessApprovals(XElement SapData) {
// Basically updates the dataset
}
}
在构建课程时,我决定(1)除非我明确刷新它,否则我宁愿不重新填充数据集,并且(2)我是这些数据的看门人;没有其他人应该更新它们。此类从 WCF 服务中调用。
除了我想重用的数据集,没有状态;此类上的每个函数都可以设为静态。但是将类设为静态是否可以接受?与实例化它并在 WCF 上拥有一个成员级变量来保存它相反。我不确定我能看到这两种方法之间的区别。
为了减少争论,让我问:将类设为静态有什么缺点?我可能不想这样做的原因。
随意批评这种方法;通常我会在 ProcessApprovals 中创建数据集并在调用结束时将其处理掉,但我真的不需要经常刷新数据,如果有的话(我有一个单独的数据集,其中包含更多的临时数据,我将在每个我更新它的时间;SapGs3DataSet 数据真的不会改变)。
另一种方法是使用企业库来缓存数据集,它可以让我设置诸如过期和刷新数据的方法等内容。
我将根据最有力的论据来选择答案,为什么我不应该这样做。如果没有任何强烈的理由不这样做,我会以最好的理由选择答案,说明为什么可以这样做。
蒂亚!
詹姆士