Слабосвязанный (loosely coupled) код — это архитектурный подход, при котором компоненты системы минимально зависят друг от друга. Они взаимодействуют через четко определенные интерфейсы, а не через конкретные реализации.
Сильносвязанный (tightly coupled) код — противоположный подход, где компоненты тесно зависят от внутренней реализации друг друга.
// Сильносвязанный код
class DatabaseManager {
func save(data: String) {
print("Saving to CoreData: \(data)")
}
}
class ViewController {
let dbManager = DatabaseManager() // Прямая зависимость
func saveData() {
dbManager.save(data: "Some data")
}
}
// Слабосвязанный код
protocol DataStorage {
func save(data: String)
}
class DatabaseManager: DataStorage {
func save(data: String) {
print("Saving to CoreData: \(data)")
}
}
class ViewController {
let storage: DataStorage // Зависимость через протокол
init(storage: DataStorage) {
self.storage = storage
}
func saveData() {
storage.save(data: "Some data")
}
}
let service = NetworkService()
слабая связность делает код более поддерживаемым, гибким и тестируемым, что критически важно для долгосрочных проектов. Это фундаментальный принцип SOLID (принцип Dependency Inversion), который должен применяться осознанно.