Sobes.tech
Middle

Šta je spoj?

sobes.tech АИ

Одговор од АИ

Kopling (coupling) je stepen zavisnosti između modula ili komponenti programa. Što je jača kopling, to su moduli usko povezani, i promene u jednom mogu uticati na drugi. U objektno-orijentisanom programiranju, teži se ka slabom koplingu (loose coupling) kako bi se povećala održivost i fleksibilnost koda.

Na primer, ako klasa A direktno koristi unutrašnje detalje klase B, to je snažan kopling. Da bi se smanjio kopling, koriste se interfejsi, apstrakcije ili injekcija zavisnosti.

Primer slabog koplinga u PHP:

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

class FileLogger implements LoggerInterface {
    public function log(string $message) {
        // zapis u fajl
    }
}

class UserService {
    private LoggerInterface $logger;

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

    public function createUser() {
        // kreiranje korisnika
        $this->logger->log('Korisnik kreiran');
    }
}

Ovde, UserService zavisi od apstrakcije LoggerInterface, a ne od konkretne implementacije, što smanjuje kopling.