2011-08-09 48 views
0

我想給的方法,我不能夠找到足夠好的meaningfull名稱查找名稱。方法應該通過參數來鎖定和解鎖用戶。幫我這個方法

考生的標誌是:在第一和第二個是方法名

void LockUser(int userid,bool @lock) 
void LockUser(int userid,bool @locking) 
void LockOrUnlockUser(int userid,bool @lock) 

void LockUser(int userid); 
void UnlockUser(int userid); 

問題說LOCKUSER但它也能夠解鎖用戶通過鎖定參數,所以這是令人困惑的。 LockOrUnlock方法名稱更具意義,但我找不到更好的參數名稱。它可以是應該鎖定的? 另一個apporach是分離它們到不同的方法,這爲方法提供更多的有意義的名稱,但我想只使用一種方法,而不是兩種。

等待建議。

+0

LOCKUSER/UnclockUser其明顯的名字做什麼的,你沒有檢查參數等 – cichy

+0

這也許應該在[代碼審查(發佈http://codereview.stackexchange.com/) – CodeNaked

+3

請原創,稱之爲foo – Icarus

回答

3

Martin Fowlersuggests使用單獨的方法。否則你實現一個標誌參數方法,他認爲是一個壞設計選擇

標誌參數是一種函數參數,它告訴函數 根據其值執行不同的操作。

我對標誌參數一般反應是爲了避免它們。而不是 使用標誌參數,我更喜歡定義單獨的方法。

+0

+1:我完全同意。 –

+0

在我的示例中,我無法真正將其稱爲標誌參數,因爲方法參數不會導致任何內部條件檢查。這是一種固定方法。我同意你對國旗運營商所說的話,但事實並非如此。 – Freshblood

+0

在這種情況下,像'SetLockState(int userId,LockState狀態) –

2

更換bool @lockenum - 這可以說是更好的設計,明智的。至於命名,也許ToggleUserLock(int userID, UserLock @lock)

0

如何SetUserLockStatus()

在技術上要設置從參數

鎖定/解鎖狀態
1

「SetUserLock(INT用戶ID,布爾@Lock)」

「ToggleUserLock(INT用戶ID) 「