2010-01-11 54 views
3

這可能是一個主觀問題,但我想知道人們覺得什麼是對象的保存或刪除方法的行爲的最佳模式?什麼類型的方法用於對象刪除或保存?

當你設置一個包含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此:

public int Delete() 
{ 
    if (this.objectID == null || this.objectID == -1) { throw new exNotDbObject() } 
    int retVal = dataLayer.DeleteObj(this.objectID); 
    return retVal; 
} 
+0

我不認爲讓你的對象對自己的持久性負責是不錯的做法 – hackerhasid 2010-01-11 17:49:35

回答

1

我喜歡int Delete()自己。然後我可以知道有多少(如果有)記錄被刪除,除非有問題,程序可以按預期繼續。

我想你可以做void Delete(),如果沒有記錄(或者多個記錄)被刪除,但是我從來不喜歡這種方法,因爲它總是假定我知道刪除的預期結果是什麼。

+0

凱文在20k時是你的防禦專家,所以感謝權重,我最終以rowcount返回,在集合中更有用。 – 2010-01-12 06:26:06

相關問題