这可能是一个主观问题,但我想知道人们认为对象的保存或删除方法行为的最佳模式是什么?
当你设置一个包含Db记录信息的类时,我通常最终将对象Delete()和Save()方法声明为void。由于这些方法通常会对对象的其他属性采取直接操作,我们是否需要返回其他任何内容以确认操作?在失败时,我只是让错误处理框架或实现代码处理任何异常。
我见过很多对象发回一行受影响的int或其他回复,对此有什么“专家”意见?
即。这样:
public void Delete()
{
if (this.objectID == null || this.objectID == -1) { throw new exNotDbObject() }
//Do dB operations
this.objectID = null;
this.TimeRetrievedFromDb = null;
}
vs this:
public int Delete()
{
if (this.objectID == null || this.objectID == -1) { throw new exNotDbObject() }
int retVal = dataLayer.DeleteObj(this.objectID);
return retVal;
}
答案 0 :(得分:1)
我自己喜欢int Delete()
。然后我可以告诉删除了多少(如果有的话)记录,除非有问题,程序可以按预期继续。
我想如果没有记录(或多个记录)被删除,你可以做void Delete()
并抛出异常,但我从不喜欢这种方法,因为我总是认为我知道预期的结果是什么删除是。