如何设置我的程序将对象交给正确的类?

时间:2010-12-06 16:23:23

标签: c# ninject

我不知道这是否可以由DI处理,因为我仍在使用DI来解决问题。

项目: 我有一个ISettings的对象,我想交给ISettingsVerification类。但是,我有许多继承自ISettingsVerification的不同类。这些类都根据特定属性(IisVersion)以不同方式处理ISettings对象。

问题: 我如何设置它,以便在主程序中,我不担心哪个ISettingsVerification类获取ISettings对象,我的程序将处理该逻辑。我熟悉使用DI Ninject,这是我可以在那里做的事情,还是我将不得不使用像Switch语句这样的决定?

我喜欢从应用程序的核心提取这个逻辑的想法。

由于

1 个答案:

答案 0 :(得分:1)

您可能必须在某处编写一个switch语句。但当然,它不一定是“应用程序的核心”。

一种解决方案是使用某种工厂:

public class SettingsVerificationFactory : ISettingsVerificationFactory
{
    public ISettingsVerification Create(Version iisVersion)
    {
        switch (iisVersion)
        {
            case 6:
                return new Iis6SettingsVerification();
            case 7:
                return new Iis7SettingsVerification();
            // etc...
        }
    }
}

现在,当您需要设置对象的验证程序时,您可以使用该工厂(通过注入或直接)。