2010-04-25 10 views
2

我在爲數據庫應用程序命名方法時遇到問題。單個對象參數的單一方法名稱,列表的複數?

在我的Database實例中,我有一種方法可以從數據庫中刪除Agreement對象。但是,我希望能夠一次刪除多個Agreement,以便能夠使用事務。問題是,我也有一個重載刪除單個Agreement對象。

從本質上講,我的結構是這樣的:

public class Database 
{ 
    // ... 

    public void RemoveAgreement(Agreement a) 
    { 
     // ... 
    } 

    public void RemoveAgreement(IEnumerable<Agreement> agreements) 
    { 
     // ... 
    } 
} 

但是,這可能會造成混淆,因爲與Agreement是清單超載有一個奇異的名字,儘管是固有的複數。

我的問題是,我應該如何構造這個?我是否應該有兩個過載名稱RemoveAgreement()RemoveAgreements()?或者我應該使用兩種單獨的方法,而不是重載?

謝謝。

回答

6

我想說,接收列表作爲參數的方法名稱RemoveAgreement是不正確的,因爲你描述的原因。

我稱之爲RemoveAgreements

爲你的類(數據庫),我要說的是,你使用它作爲DAO您的所有實體的名稱。

如果你使用這個類只對協議的實體我有這2種方法

public void Remove(Agreement agreement)

public void Remove(IEnumerable<Agreement> agreements)

+0

是的,這是一個相當的s商場應用程序,它只追蹤三種類型的對象,所以我認爲只使用單個DAO會更簡單。 – mgbowen 2010-04-25 03:50:03

0

我建議使用不同的名稱,並使複數版本的過載需要params Agreement[]

0

這是我會在這種情況下做的:

public void RemoveAgreement (Agreement agreement) 
{ 
    // Do Stuff 
} 

public void RemoveAgreements (IEnumerable<Agreement> agreements) 
{ 
    foreach (Agreement a in agreements) 
    { 
     RemoveAgreement(a); 
    } 
}