好的,我只是在学习 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();
}
}