好的,我只是在学习DI。为了理解它,我在网上经历了一些指示。然后我做了一个非常小的实时场景,只是为了自己理解它。
我正在应用DI构造函数注入模式来计算不同类型客户的产品价格折扣。如果是员工,则有单独的折扣,如果是普通买家,那么它将是一个单独的折扣。我不知道这是否适合在这种情况下应用DI或任何其他更好的解决方案/模式可用。我只是编译了代码,我很高兴它运行。但是,我对此的正确性并不充满信心。并且会感谢对此计划的任何更正,如微调,或者更好的方法等建议。另外,它真的是DI吗?如果这就是所谓的依赖注入,那么我们不是在静态main方法中对类进行硬编码吗?这是对的我在做什么,这是我们在实时场景中做的事情吗?它也会帮助像我这样的人。
class Program
{
public interface IDiscount
{
void Discount(int amount);
}
public class ApplyDiscount : IDiscount
{
public void Discount(int amount)
{
Console.WriteLine("Normal Discount calculated is {0}", amount);
}
}
public class ApplyEmployeeDiscount : IDiscount
{
public void Discount(int amount)
{
Console.WriteLine("Employee Discount calculated is {0}", amount);
}
}
public class Compute
{
public readonly IDiscount discount;
public Compute(IDiscount discount)
{
this.discount = discount;
}
public void ComputeTotal(int productAmount)
{
this.discount.Discount(productAmount);
}
}
static void Main()
{
IDiscount regularDiscount = new ApplyDiscount();
IDiscount employeeDiscount = new ApplyEmployeeDiscount();
Compute c = new Compute(employeeDiscount);
c.ComputeTotal(200);
Console.ReadLine();
}
}
答案 0 :(得分:2)
我将其分为三部分:
是/否答案,是的,您注入了依赖项。
这是一个简短的博客,它将以简单(简短)的方式阐明依赖注入:Blog by James Shore。
重枪:article by Martin Fowler。添加到这里并不多(请注意,长篇文章)