我在C#中有一个界面,可以帮助从服务器上的自定义存档中检索数据。界面如下所示:
public interface IRetrieveData
{
bool OkToRetrieve(SomeData data); // Method in question...
bool RetrieveToLocal(SomeData data);
}
此接口由将数据检索到本地数据库的客户端实现。有不同类型的客户端可以访问彼此的数据。因此,当处理组件在实际检索之前调用IRetrieveData.OkToRetrieve
时,调用将转到客户端代码,在该代码中决定是否应该检索数据。
此时客户端可以返回false并跳过该数据或返回true,处理组件调用RetrieveToLocal
并将数据发送到客户端,然后客户端处理它。
我感到困惑的是,是将方法OkToRetrieve
重命名为Retrieve
还是CanRetrieve
还是将其保留为OkToRetrieve
。
有没有人有任何建议?
答案 0 :(得分:58)
IsRetrievable()
我认为返回布尔值的方法应该被命名为yes-no question。
答案 1 :(得分:18)
Allways命名布尔方法,其名称类似于可回答是或否的问题。
在您的情况下, CanRetrieve 将是一个好名字(只是为了使用您自己的建议)。
答案 2 :(得分:12)
如何使用前缀'should'?
ShouldRetrieve(SomeData data);
答案 3 :(得分:6)
方法意味着行动。因此,我更喜欢方法名称以动词开头。怎么样?
CheckIsRetrievable(SomeData data)
答案 4 :(得分:6)
在这个具体案例中,我可能会将其命名为:
public bool IsReady (SomeData)
因为它更清楚地展示了一旦返回true
会发生什么。
答案 5 :(得分:6)
取决于您的使用案例。我喜欢在前面加上“是”,“确实”或“可以”这样的词:
IsSomePropertySoAndSo
,DoesNounSupportFeature
以及您的示例CanVerb
答案 6 :(得分:2)
如果您正在进行更多检查并且isRetrievable()不合适,您可以使用:
IsValid()
答案 7 :(得分:1)
CanRetrieve对我来说听起来不错。我已经看到了Microsoft API中使用的 Can 词干。唯一的另一个真正的选择IMO是IsRetrievable(来自Aziz),它在某种程度上看起来太语言化了!
答案 8 :(得分:1)
我更喜欢isOKToRetrieve或isRetrieveOK而不是“is”的变体,其功能和方法应该是动词。
答案 9 :(得分:1)
在命名约定中,写入方法名称应为动词
答案 10 :(得分:1)
通常,方法/功能指示动作,因此应在其前加上动词。例如检查,获取,制作等。
布尔变量的通用命名约定是在其前面加上帮助动词,例如是,确实,将会,可以
我认为这两个约定的结合将导致一个很好的,可识别的模式。所以getIsRetreivable()或checkIsRetrievable()对我来说看起来不错。
答案 11 :(得分:0)
MayRetrieve()
可能是更好的名称。
IsRetrievable()
更加含糊不清,如果除了权限之外还有其他注意事项,则可能更为合适。