INeedSomething的更好名字..

本文关键字:更好 INeedSomething | 更新日期: 2023-09-27 17:55:47

我正在尝试为接口选择一个名称,通过该名称可以将某些内容传递到对象中,例如:

  • 如果对象是 INeedX,则将调用 SetX(某些 x) 方法;
  • 如果对象是 INeedY,则将调用 SetY(一些 y) 方法;
  • 等等。(有趣得要命,我知道:))

我试图为这种接口找到一个不同的名称,但我无法弄清楚。

有没有人知道如何命名INeedSomething接口?

INeedSomething的更好名字..

您的接口的名称 IDependsOn 怎么样(又名。IDependsOnUserId, IDependsOnTimeOut)

嗯,INeed界面可能表明设计笨拙。在我看来,您真正要寻找的是依赖注入,这相当于声明一个对象需要另一个对象才能运行的代码。所以而不是有

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

,也许你真正想要的是

class Car {
    public Car(Engine engine)
}

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

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

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

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

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

请改用属性:

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