Каково обоснование позади Интерфейсного Принципа Сегрегации?

str='hello\nworld'
$ echo | sed "i$str"
hello
world
24
задан Steve Chambers 3 September 2017 в 13:31
поделиться

4 ответа

ISP указывает что:

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

ISP касается важных характеристик - сцепление и связь .
Идеально Ваши компоненты должны быть узкоспециализированными. Это улучшает устойчивость кода и пригодность для обслуживания.

ISP Осуществления дает Вам после премий:

  • Высокий сцепление - лучшая понятность, устойчивость
  • Низкий связь - лучшая пригодность для обслуживания, высокое сопротивление изменениям

, Если Вы хотите узнать больше о принципах разработки программного обеспечения, получает копию Гибкая разработка программного обеспечения, Принципы, Шаблоны и Методы книга.

31
ответ дан aku 28 November 2019 в 23:10
поделиться

Избегать попыток регрессии, когда меняется только один клиент или один клиент. Если вы объединили все свои методы поведения в одном БОЛЬШОМ интерфейсе, просто подумайте о том, как вы в конечном итоге будете тестировать все фрагменты кода, на которые ссылался только этот интерфейс, даже когда произошли только небольшие изменения.

Более подробное объяснение см. В статье Принцип разделения интерфейса

.
0
ответ дан ragingasiancoder 19 July 2019 в 10:05
поделиться

Это упрощает интерфейс, что любой клиент будет использовать и удаляет зависимости, которые они могли бы иначе разработать на частях интерфейса, в котором они не нуждаются.

5
ответ дан Bill the Lizard 28 November 2019 в 23:10
поделиться

Одна причина состоит в том, что наличие многих интерфейсов с минимальной суммой методов для каждого облегчает реализовывать каждый интерфейс и реализовывать их правильно. Большой интерфейс может быть непослушным. Кроме того, использование сфокусированного интерфейса в сценарии делает код более удобным в сопровождении, потому что Вы видите, какой фасет объекта используется (например, интерфейс IComparable сообщает, что объект только используется для сравнений в данном сценарии).

3
ответ дан Mark Cidade 28 November 2019 в 23:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: