Принцип разделения интерфейсов (ISP) требует разбивки больших интерфейсов на меньшие, сфокусированные. Это позволяет классам реализовывать только те методы, которые им действительно нужны, вместо того чтобы быть вынужденными реализовывать ненужный функционал.
Представь систему управления заказами с тремя отдельными ответственностями:
public interface IOrderProcessor
{
void ProcessOrder(Order order);
}
public interface IOrderValidator
{
bool ValidateOrder(Order order);
}
public interface IOrderSaver
{
void SaveOrder(Order order);
}
Класс OrderManager реализует все три разделённых интерфейса:
public class OrderManager : IOrderProcessor, IOrderValidator, IOrderSaver
{
// Реализация всех трёх интерфейсов
}
Такой подход способствует более чистой, модульной архитектуре. Если другому классу нужна только логика валидации заказа, он может реализовать просто IOrderValidator вместо того чтобы быть вынужденным реализовывать все методы из одного большого интерфейса. Это снижает сложность кода и делает систему проще в поддержке и тестировании.
Принцип разделения интерфейса требует, чтобы каждый интерфейс представлял одну ответственность, позволяя классам реализовывать только те интерфейсы, которые им действительно нужны.
Новый — ещё не проверен сообществом
Вы