Показаны сообщения с ярлыком принцип разделения интерфейса. Показать все сообщения
Показаны сообщения с ярлыком принцип разделения интерфейса. Показать все сообщения

суббота, 25 июня 2016 г.

Принцип разделения интерфейса (Interface Segregation Principle)

Принцип разделения интерфейса (ISP), четвертый из принципов SOLID

Клиенты не должны зависеть от методов, которые они не используют.

Или "меньше знаешь - крепче спишь". Принцип разделения интерфейсов говорит о том, что слишком «толстые» интерфейсы необходимо разделять на более маленькие и специфические, чтобы клиенты маленьких интерфейсов знали только о методах, которые необходимы им в работе. В итоге, при изменении метода интерфейса не должны меняться клиенты, которые этот метод не используют.

Следование этому принципу помогает системе оставаться гибкой при внесении изменений в логику работы и пригодной для рефакторинга.

Использование же "толстых" интерфейсов приводит к:

  • появлению множества "заглушек", и как следствие - ко множеству лишнего кода, который сложно поддерживать
  • соблазну нарушить принцип SRP, поскольку клиентский код "знает" о переданном классе, реализующем такой интерфейс, слишком много