C#依赖注入示例

时间:2009-12-13 20:13:35

标签: c# .net dependency-injection

我想知道在处理依赖注入时是否从实现接口的类继承对象是否有意义 示例

public interface IPeople
    {
        string Name { get; set; }
        int Age { get; set; }
        string LastName { get; set; }

    }

public class CPeople : IPeople
    {..implemented IPeople Methods..}

这样我只需要在一个地方实现接口。我只是不确定这是否会被认为是松耦合的。

public class Dad : CPeople
    {
    }



public class Mom : CPeople
    {
    }

所以我的控制器里面会有

public class Parent

{

    IPeople objMom;
    IPeople objDad;
    Parents m_Parent;

    public void factoryMethod()
    {

        objMom = new Mom();
        objMom.Age = 32;
        objMom.Name = "Jane";
        objMom.LastName = "Doe";

        objDad = new Dad();
        objDad.Age = 25;
        objDad.Name = "John";
        objDad.LastName = "Doe";

        m_Parent = new Parents(objMom,objDad);

    }
    public override string ToString()
    {                      
        return m_Parent.Mom.Name + " " + m_Parent.Mom.LastName +  " is " + m_Parent.Mom.Age + " years of age, " + m_Parent.Dad.Name + " " + m_Parent.Dad.LastName + " aged " + m_Parent.Dad.Age.ToString();
    }

1 个答案:

答案 0 :(得分:2)

是的,这被认为是松耦合的,因为控制器不需要了解接口定义之外的内部对象。

如果您关心妈妈/爸爸是分开的,您可以为那些(即使它们是空的)实现接口,并使用它们来确保父母既是IMom又是IDad。