Sobes.tech
Junior — Middle

Izskaidrojiet vadības inversijas principu ar piemēru taksometra izsaukšanas sistēmas.

sobes.tech AI

Atbilde no AI

Vadības inversija (IoC) ir princips, saskaņā ar kuru objektu izveides un sasaistes pārvaldība tiek nodota ārējam konteineram vai ietvaram, nevis tiek īstenota tieši kodā.

Piemērs taksometra izsaukšanas sistēmā:

  • Tā vietā, lai TaxiService klase pati veidotu Driver vai Car objektus, šīs atkarības tiek nodotas no ārpuses (piemēram, caur konstruktoru).
  • IoC konteineris ir atbildīgs par visu objektu izveidi un sasaisti.
public class TaxiService {
    private Driver driver;

    // Atkarība tiek nodota no ārpuses
    public TaxiService(Driver driver) {
        this.driver = driver;
    }

    public void callTaxi() {
        driver.driveToCustomer();
    }
}

Šeit TaxiService neizveido Driver pats, bet to saņem no ārpuses. Tas atvieglo testēšanu, paplašināšanu un koda uzturēšanu, jo atkarības var mainīt bez paša klases maiņas.