str='hello\nworld'
$ echo | sed "i$str"
hello
world
ISP указывает что:
Клиенты не должны быть вынуждены зависеть от методов, которые они не используют.
ISP касается важных характеристик - сцепление и связь .
Идеально Ваши компоненты должны быть узкоспециализированными. Это улучшает устойчивость кода и пригодность для обслуживания.
ISP Осуществления дает Вам после премий:
, Если Вы хотите узнать больше о принципах разработки программного обеспечения, получает копию Гибкая разработка программного обеспечения, Принципы, Шаблоны и Методы книга.
Избегать попыток регрессии, когда меняется только один клиент или один клиент. Если вы объединили все свои методы поведения в одном БОЛЬШОМ интерфейсе, просто подумайте о том, как вы в конечном итоге будете тестировать все фрагменты кода, на которые ссылался только этот интерфейс, даже когда произошли только небольшие изменения.
Более подробное объяснение см. В статье Принцип разделения интерфейса
.Это упрощает интерфейс, что любой клиент будет использовать и удаляет зависимости, которые они могли бы иначе разработать на частях интерфейса, в котором они не нуждаются.
Одна причина состоит в том, что наличие многих интерфейсов с минимальной суммой методов для каждого облегчает реализовывать каждый интерфейс и реализовывать их правильно. Большой интерфейс может быть непослушным. Кроме того, использование сфокусированного интерфейса в сценарии делает код более удобным в сопровождении, потому что Вы видите, какой фасет объекта используется (например, интерфейс IComparable сообщает, что объект только используется для сравнений в данном сценарии).