寻找与inUse()方法接口的好名称

时间:2011-06-24 09:04:18

标签: c# java

如何命名一个提供1个方法的接口inUse()?

10 个答案:

答案 0 :(得分:13)

我实际上会首先重新考虑名称'inUse()';布尔值显然只有两个可能的值,但实际上您正在添加获取状态的能力。我会考虑宣布一个枚举

public enum UsageState
{
    Idle,
    InUse
}

并命名您的界面IHasUsageState。这使您可以灵活地添加StartingFinishingWaitingToBeUsed或其他选项,具体取决于您正在做什么,例如,如果您有线程问题需要处理在将来。

此外,您不需要像if (!obj.InUse()) { }这样的负面检查,而是支持更具可读性和直观性if (obj.Usage == UsageState.Idle) { },更不用说您将来可能会要求它指定为什么它是空闲。

答案 1 :(得分:9)

IUsageIndicator如果您想要显示您的对象目前正在使用

IUsable如果您想证明您的对象可以使用。

答案 2 :(得分:5)

我会说出来。 IInUse。看起来不错......

答案 3 :(得分:3)

我更愿意将其命名为IUsable,并牢记MS遵循的标准惯例。 (例如:IEnumerable,IComparable等)

答案 4 :(得分:2)

我更喜欢 InUsable。听起来永恒。  见here

答案 5 :(得分:2)

我会说出来。 IUsable。看起来不错......

答案 6 :(得分:2)

这就是我在Java中所做的

public interface Usable {

    public boolean inUse();
}

答案 7 :(得分:1)

它应该以大写'I'开头,因此接口名称将成为您的案例IInUse。

在此处关注C#coding standards

答案 8 :(得分:0)

IExclusiveUseObject怎么样?

答案 9 :(得分:0)

你在寻找c#和java的答案吗?

作为一个c-sharper,我用“I”作为前缀,而我与之交谈的大多数c#开发人员也这样做,可能是因为它位于microsoft naming conventions.

然而,有趣的是,当搜索java命名约定时,我看到了前缀和无前缀的混合。

所以在c#中也许是这样的:

public interface IUsable {

    void InUse();
}