1
我是新来的依赖注入。在阅读Ninject时我有些怀疑。使用依赖注入来注入不同类的类
在Ninject wiki中,我看到了依赖注入的基本示例。从那我怀疑出现。
这是link。
class Samurai
{
readonly IWeapon weapon;
public Samurai(IWeapon weapon)
{
this.weapon = weapon;
}
public void Attack(string target)
{
this.weapon.Hit(target);
}
}
class Shuriken : IWeapon
{
public void Hit(string target)
{
Console.WriteLine("Pierced {0}'s armor", target);
}
}
class Program
{
public static void Main()
{
var warrior1 = new Samurai(new Shuriken());
var warrior2 = new Samurai(new Sword());
warrior1.Attack("the evildoers");
warrior2.Attack("the evildoers");
}
}
下面是该链接中提到的声明。
“当类是紧耦合的,它们不能在不改变其执行交换。为了避免紧密耦合的类中,我们可以使用接口来提供一个间接层”。
如果我想创建一个名为Dress的新类并注入Samurai类。那个时候我也需要重写武士阶层知道像下面
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(){
}
}
要不然我有任何其他选项???
Thanks Preston Guillot – Harishankaran