INeedSomething更好的名字......?

时间:2011-05-09 07:34:50

标签: c# interface naming-conventions class-design naming

我正在尝试为界面选择一个名称,通过该名称我可以将某些内容传递给对象,如:

  • 如果对象是INeedX,则将调用SetX(某些x)方法;
  • 如果对象是INeedY,则将调用SetY(某些y)方法;
  • 等等。 (好笑,我知道:))

我尝试为这种接口找到一个不同的名称,但我无法弄明白。

有人知道如何命名 INeedSomething 界面吗?

4 个答案:

答案 0 :(得分:3)

您的界面名称 IDependsOn 怎么样(又名.IDependsOnUserId,IDependsOnTimeOut)

答案 1 :(得分:2)

嗯,INeed界面可能表明设计很尴尬。在我看来,你真正想要的是依赖注入,这是代表一个对象需要另一个对象来运行的代码。所以没有

class Car:INeed<Engine> {
    public Set(Engine engine)
}

,也许你真正想要的是

class Car {
    public Car(Engine engine)
}

如果我是你,我会尝试看看上述内容是否适用于您的情况,这是一种更为标准的方式来声明需求/依赖

答案 2 :(得分:1)

public interface INeed<T>
{
   public T SetValue { set; }
}

通过使用泛型,接口传递的类型稍后定义,如下所示:

class Needy : INeed<int>
{
   private int internalValue;
   public int SetValue { set {
     internalValue = value;
   } };
}

答案 3 :(得分:0)

IRequire听起来更好,但是,使用界面似乎是错误的。

改为使用属性:

class MyClass
{
    [Required]
    double X
    {
         get;
         set;
    }
}