Ответ
Низкая связанность (Low Coupling) — это принцип проектирования, при котором модули или классы системы имеют минимальные зависимости друг от друга. Это снижает эффект «домино»: изменения в одном модуле с меньшей вероятностью затронут другие.
Пример высокой связанности (плохо):
class OrderService {
private MySQLOrderRepository repository = new MySQLOrderRepository();
// Класс жёстко зависит от конкретной реализации репозитория.
}
Пример низкой связанности (хорошо):
// 1. Определяем интерфейс (абстракцию)
interface OrderRepository {
void save(Order order);
}
// 2. Реализуем его
class MySQLOrderRepository implements OrderRepository { ... }
// 3. Внедряем зависимость через интерфейс
class OrderService {
private OrderRepository repository;
public OrderService(OrderRepository repo) { // Внедрение зависимости (DI)
this.repository = repo;
}
}
Преимущества Low Coupling:
- Удобство тестирования: Легко подменить реальную зависимость mock-объектом.
- Гибкость: Реализацию можно изменить, не трогая клиентский код (следуя принципу DIP).
- Понятность: Модули можно анализировать и понимать изолированно. Связанный принцип: Высокое зацепление (High Cohesion) — модуль должен решать одну четкую задачу.