Встречается на собеседованиях • сегодня

Что такое зацепленность

Зацепленность (coupling) — это степень взаимозависимости между модулями или компонентами системы. Высокая зацепленность означает, что изменения в одном модуле могут потребовать изменений в других, что усложняет поддержку и тестирование. Низкая зацепленность (слабая связность) — признак хорошо спроектированной системы.

Пример высокой зацепленности:

python
class Order:
    def __init__(self):
        self.db = Database()  # Прямая зависимость от конкретного класса

    def save(self):
        self.db.save_order(self)

Здесь Order жестко зависит от Database.

Пример низкой зацепленности:

python
class Order:
    def __init__(self, storage):  # Зависимость от абстракции (интерфейса)
        self.storage = storage

    def save(self):
        self.storage.save(self)

Теперь Order зависит от абстракции (storage), что позволяет подменить реализацию (например, на мок для тестов).

Как уменьшить зацепленность:

  • Использовать DI (внедрение зависимостей).
  • Работать с интерфейсами, а не конкретными классами.
  • Избегать глобальных состояний.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы