【问题标题】:Need help choosing a name for an interface需要帮助为接口选择名称
【发布时间】:2008-10-16 04:41:16
【问题描述】:

我正在重构应用程序中的许多类以使用接口而不是基类。这是我目前创建的接口:

  • ICarryable 由所有 Item 对象实现
  • IActable 由所有 Actor 对象实现
  • IUseable 由一些 Item 子类实现
  • IWieldable 由一些 Item 子类实现

您可以看到主要的基类仍然是 Item 和 Actor。它们有一个共同的界面,因为它们都位于地图上,因此它们具有 Location 属性。 Map 不应该关心对象是 Actor 还是 Item,所以我想为它创建一个接口。这是界面的样子

public interface IUnnameable {
    event EventHandler<LocationChangedEventArgs> LocationChanged;
    Location Location { get; set; }
}

这没问题,但我想不出这个接口叫什么。 IMappable 似乎有点蹩脚。有什么想法吗?

【问题讨论】:

    标签: c# .net naming


    【解决方案1】:

    听起来像一个 ILocateable。您可以发现和跟踪其位置的东西。

    【讨论】:

      【解决方案2】:
      • ILocatable
      • IGeo
      • 我在某处
      • IIsSomewhere

      编辑:

      • 名词

      【讨论】:

      • @BCS,看来您已经将 Matt 击败了 ILocateable。到目前为止我喜欢它,但在我将您的答案标记为已接受之前,我会看看是否有更好的结果。不过,我确实喜欢 ILocateable :)
      • @Mark Matt 先找到它...(按最旧排序)
      • 天啊,它一定很紧。我不介意您将 BCS 标记为答案。
      • Drats - 马特汉密尔顿你该死!我发誓我没有先看到你的。听起来至少有两票赞成。 :-)
      • @BCS,你说得对,我一定是反过来看的。不过,我已经投票给你们两个了 :)
      【解决方案3】:

      我只使用LOLCats 表示法。

      ICanHasLocation

      或许

      IHasLocation

      还是荒谬的

      ImInYourProgramHavingALocation

      哦,顺便说一句 - 至少有一个用于 C# 的 Duck Typing 库,这是一个非常酷的概念。

      【讨论】:

      • 整洁的库,虽然,我不相信它需要它。我想我最喜欢 IHasLocation,但我会选择 ILocateable 以与我项目中的其他一些接口名称保持一致。谢谢;)
      【解决方案4】:

      IWhereYouAtable - 提升移动端

      ITwentyable - 你的 20 是多少(10-20 的缩写 - CB 俚语)

      说真的,虽然 ILocateable 很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-06
        • 2014-12-01
        • 1970-01-01
        • 2013-03-27
        • 1970-01-01
        • 2013-06-07
        相关资源
        最近更新 更多