Middle
Czym jest sprzężenie?
sobes.tech AI
Odpowiedź od AI
Coupling (łączenie) to stopień zależności między modułami lub komponentami programu. Im silniejsze jest łączenie, tym bardziej moduły są ze sobą powiązane, a zmiany w jednym mogą wpłynąć na drugi. W programowaniu obiektowym dąży się do słabego łączenia (loose coupling), aby zwiększyć łatwość utrzymania i elastyczność kodu.
Na przykład, jeśli klasa A bezpośrednio korzysta z wewnętrznych szczegółów klasy B, jest to silne łączenie. Aby zmniejszyć łączenie, używa się interfejsów, abstrakcji lub wstrzykiwania zależności.
Przykład słabego łączenia w PHP:
interface LoggerInterface {
public function log(string $message);
}
class FileLogger implements LoggerInterface {
public function log(string $message) {
// zapis do pliku
}
}
class UserService {
private LoggerInterface $logger;
public function __construct(LoggerInterface $logger) {
$this->logger = $logger;
}
public function createUser() {
// tworzenie użytkownika
$this->logger->log('Użytkownik utworzony');
}
}
Tutaj, UserService zależy od abstrakcji LoggerInterface, a nie od konkretnej implementacji, co zmniejsza łączenie.