Код IT
← Каталог

Принципы SOLID в объектно-ориентированном проектировании — Аналог на C#

Фрагмент из «Принципы SOLID в объектно-ориентированном проектировании»: Аналог на C#.

C# main.cs
// C# (хороший пример)
public interface IDiscount
{
    decimal Apply(decimal amount);
}

public class SeasonalDiscount : IDiscount
{
    public decimal Apply(decimal amount) => amount * 0.9m;
}

public class VipDiscount : IDiscount
{
    public decimal Apply(decimal amount) => amount * 0.8m;
}

public class OrderCalculator
{
    public decimal CalculateTotal(IEnumerable<Item> items, IDiscount discount)
    {
        var total = items.Sum(item => item.Price);
        return discount.Apply(total);
    }
}
// C# (хороший пример)
public interface IDiscount
{
    decimal Apply(decimal amount);
}

public class SeasonalDiscount : IDiscount
{
    public decimal Apply(decimal amount) => amount * 0.9m;
}

public class VipDiscount : IDiscount
{
    public decimal Apply(decimal amount) => amount * 0.8m;
}

public class OrderCalculator
{
    public decimal CalculateTotal(IEnumerable<Item> items, IDiscount discount)
    {
        var total = items.Sum(item => item.Price);
        return discount.Apply(total);
    }
}