Что такое модули высокого уровня и модули низкого уровня.?

Я знаю, что это точный дубликат ссылке ниже.

что такое "модули высокого уровня" и "модули низкого уровня" (в контексте принципа инверсии зависимостей)?

но после прочтения, что я не понимаю, что именно это.

High level modules are abstract classes and Interfaces ?

1 ответов


модуль высокого уровня-это интерфейс / абстракция, которая будет потребляться непосредственно слоем презентации. С другой стороны, низкий уровень-это куча небольших модулей (подсистем), которые помогают высокому уровню выполнять свою работу. Пример ниже-модуль высокого уровня. Я исключил инъекцию конструктора зависимостей для более короткого образца.

public class OrderService : IOrderService
{
    public void InsertOrder(Order ord)
    {
        if(orderValidator.IsValidOrder(ord)
        {
            orderRepository.InsertNew(ord);
            userNotification.Notify(ord);
        }
    }
}

и один из модулей низкого уровня (OrderValidator):

public class OrderValidator : IOrderValidator
{
    public bool IsValidOrder(Order ord)
    {
        if(ord == null) 
            throw new NullArgumentException("Order is null");
        else if(string.IsNullOrEmpty(ord.CustomerId)) 
            throw new InvalidArgumentException("Customer is not set");
        else if(ord.Details == null || !ord.Details.Any())
            throw new InvalidArgumentException("Order detail is empty");
    }
}