Sobes.tech
Middle

Cos'è l'accoppiamento?

sobes.tech AI

Risposta dell'AI

L'accoppiamento (coupling) è il grado di dipendenza tra moduli o componenti di un programma. Più forte è l'accoppiamento, più strettamente sono collegati i moduli, e le modifiche in uno possono influenzare l'altro. Nella programmazione orientata agli oggetti, si mira a un accoppiamento debole (loose coupling) per migliorare la manutenibilità e la flessibilità del codice.

Ad esempio, se la classe A utilizza direttamente dettagli interni della classe B, si tratta di un accoppiamento forte. Per ridurre l'accoppiamento, si usano interfacce, astrazioni o iniezione delle dipendenze.

Esempio di accoppiamento debole in PHP:

interface LoggerInterface {
    public function log(string $message);
}

class FileLogger implements LoggerInterface {
    public function log(string $message) {
        // scrittura su file
    }
}

class UserService {
    private LoggerInterface $logger;

    public function __construct(LoggerInterface $logger) {
        $this->logger = $logger;
    }

    public function createUser() {
        // creazione utente
        $this->logger->log('Utente creato');
    }
}

Qui, UserService dipende dall'astrazione LoggerInterface, e non da un'implementazione concreta, il che riduce l'accoppiamento.