【发布时间】:2010-12-26 05:41:57
【问题描述】:
我想知道在处理依赖注入时让对象继承自实现接口的类是否有意义 例子
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();
}
【问题讨论】:
-
请,请,请,请不要在 C# 中使用匈牙利符号。这是没有意义的,因为所有的东西都是类和对象,看着它就很痛苦。
-
如果你的妈妈和爸爸班级是相同的,为什么要为它创建两个单独的班级?您可以通过设置一个带有 bool/enum 的类来说明它是母亲还是父亲,从而达到同样的效果。也许你的例子太简单了,没有意义?
-
@Konamiman:有时匈牙利符号很有用(应用程序匈牙利文与系统匈牙利文 - en.wikipedia.org/wiki/…)。我同意这不是其中之一。
-
@Mark Byers,@Konamiman - 不幸的是,99% 的人误用了匈牙利符号。很多人使用它来显示静态类型语言中的类型,而匈牙利符号的最初用途是显示它的使用位置(App Hungarian notation)。
-
简单,伙计们。匈牙利符号是每隔几年就会进进出出的东西之一,并且会被无休止地讨论,好像它很重要一样。
标签: c# .net dependency-injection