Это известная дилемма «Плотно связанная против слабосвязанной», и для нее нет общих рекомендаций. Это во многом зависит от того, насколько велики ваши компоненты, как они взаимодействуют, как часто они меняются, какие команды над ними работают, каково ваше время сборки.
Мой общий совет - сохранять равновесие. Не сходите с ума, разъединяя каждый мини-класс, и, с другой стороны, не создавайте монолит, в котором одна маленькая модификация вызывает перестройку всего мира.
- Там, где ожидается изменение, используйте слабосвязанные компоненты
- Там, где ожидается стабильность, Favor тесно связанные компоненты
Это всегда компромисс:
С каждым решением связаны расходы:
Стоимость внесения изменений в тесно связанные компоненты хорошо известна.
-Изменение является инвазивным
- Чтобы определить все в цепочке зависимостей, может потребоваться много работы
Легко пропустить зависимости
- Трудно обеспечить качество
С другой стороны, затраты на чрезмерное проектирование тоже плохие
взломать код
-сложности
медленное развитие
- трудно для новых разработчиков стать продуктивными
К вашему примеру:
Посмотрите на Пример Stoplight вместе с блоками приложений Microsoft Unity
