Применяется ли принцип разделения интерфейса к структурам данных?

Представим, что у нас есть большая структура данных (назовем ее) и различные клиентские классы (назовем их ). Каждой службе нужно всего одно или два поля из.

Если мы введем весь объект в различные s, это нарушает ISP? Меняет ли тот факт, что технически это структура данных, а не буквальный интерфейс Java, фундаментальную идею ISP?

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

Пытаюсь понять, нарушает ли второй вариант ISP.

1 ответ

Строго по словам Боба Мартина , да. Его пример применения интернет-провайдера к stack безусловно, подразумевает, что включены структуры данных.

С другой стороны, этот вопрос часто задают относительно принципа инверсии зависимостей, например, здесь , здесь и здесь . Как я уже ответил относительно DIP, я не думаю, что имеет смысл применять его к структуре данных. Ваш опыт может варьироваться при применении объектно-ориентированных принципов к конструкциям процедурного программирования.

Другие вопросы по тегам