C# 使用依赖项注入注入不同类型的类
我是依赖注入的新手。我在读关于Ninject的文章时有点怀疑 在Ninject wiki中,我看到了依赖注入的一个基本示例。由此我产生了怀疑 这是最新的 下面是该链接中提到的声明 “当类紧密耦合时,如果不改变它们的实现,它们就不能互换。为了避免类紧密耦合,我们可以使用接口提供一定程度的间接寻址。” 如果我想创建一个名为Dress的新类,并将其注入武士类。那个时候我也需要重写武士课,知道如下C# 使用依赖项注入注入不同类型的类,c#,dependency-injection,C#,Dependency Injection,我是依赖注入的新手。我在读关于Ninject的文章时有点怀疑 在Ninject wiki中,我看到了依赖注入的一个基本示例。由此我产生了怀疑 这是最新的 下面是该链接中提到的声明 “当类紧密耦合时,如果不改变它们的实现,它们就不能互换。为了避免类紧密耦合,我们可以使用接口提供一定程度的间接寻址。” 如果我想创建一个名为Dress的新类,并将其注入武士类。那个时候我也需要重写武士课,知道如下 class Samurai { readonly IWeapon weapon; read
class Samurai
{
readonly IWeapon weapon;
readonly IDress dress
public Samurai(IWeapon weapon, IDress dress)
{
this.weapon = weapon;
this.dress = dress;
}
public void Attack(string target)
{
this.weapon.Hit(target);
}
public void Wear(){
}
}
或者我还有其他选择吗?你的问题与依赖注入或IoC有什么关系还不是很清楚,但是你改变
武士定义的另一个选择是将其扩展到一个新的类中,例如
public ClothedSamurai : Samurai
{
readonly IDress dress;
public ClothedSamurai(IWeapon weapon, IDress dress) : base(weapon)
{
this.dress = dress;
}
public void Wear()
{
//whatever this does
}
}
现在还不清楚你的问题与依赖注入或IoC有什么关系,但是你改变Samurai
定义的另一个选择是将其扩展到一个新类中,例如
public ClothedSamurai : Samurai
{
readonly IDress dress;
public ClothedSamurai(IWeapon weapon, IDress dress) : base(weapon)
{
this.dress = dress;
}
public void Wear()
{
//whatever this does
}
}
谢谢Preston Guillothanks Preston Guillott