Sobes.tech
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.