我想为方法提供一个有意义的名称,但我找不到足够的好处。方法应该通过参数锁定和解锁用户。
候选人的标志是:
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 :(得分:3)
Martin Fowler suggests使用不同的方法。否则,您实施 Flag Argument 方法,他认为该方法是糟糕的设计选择。
flag参数是一种告诉函数的函数参数 根据其价值进行不同的操作。
我对标志参数的一般反应是避免它们。而不是 使用flag参数,我更喜欢定义单独的方法。
答案 1 :(得分:2)
将bool @lock
替换为enum
- 这可以说是更好的设计方式。至于命名,也许ToggleUserLock(int userID, UserLock @lock)
?
答案 2 :(得分:1)
“SetUserLock(int userid,bool @lock)”
“ToggleUserLock(int userid)”
答案 3 :(得分:0)
SetUserLockStatus()
怎么样?从技术上讲,您从参数
设置锁定/解锁状态答案 4 :(得分:0)
怎么样
ChangeUserLockStatus