小编Jos*_*ler的帖子

C#最佳实践:使用委托或接口作为类依赖项

我有一个类需要一种方法来检索具有最大值的随机整数值.我不希望这个类依赖于检索该随机值的特定方法(例如system.random).最好是:

(A)使用公共代表(或func)

public delegate int NextRandomInt(int maxValue);

public class MyClass
{
    public NextRandomInt NextRandomInt { get; set; }

    public MyClass(NextRandomInt nextRandomInt)
    {
        NextRandomInt = nextRandomInt;
    }
}
Run Code Online (Sandbox Code Playgroud)

(B)使用公共界面

public interface IRandomIntProvider
{
    int NextInt(int maxValue);
}

public class MyClass
{
    public IRandomIntProvider RandomIntProvider { get; set; }

    public MyClass(IRandomIntProvider randomIntProvider)
    {
        RandomIntProvider = randomIntProvider;
    }
}
Run Code Online (Sandbox Code Playgroud)

(C)其他一切都在一起.

两种方式都有效.我觉得使用委托会更简单,更快速地实现,但界面更易读,并且在依赖注入时可能更容易.

c# delegates interface

6
推荐指数
1
解决办法
885
查看次数

标签 统计

c# ×1

delegates ×1

interface ×1