Odwrócenie sterowania

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Czym jest odwrócenie sterowania?

Odwrócenie sterowania (ang. Inversion of Control, IoC) to zasada, w której to framework kontroluje główny przepływ działania programu, a kod napisany przez programistę jest wywoływany w odpowiednich momentach.

To jedna z kluczowych różnic między frameworkiem a biblioteką.

Biblioteka a framework

W przypadku biblioteki programista sam decyduje, kiedy wywołać jej funkcje:

const wynik = biblioteka.oblicz(dane);

Programista kontroluje przebieg programu, a biblioteka tylko dostarcza gotowe narzędzia.

W przypadku frameworka sytuacja jest odwrotna. Framework narzuca strukturę aplikacji i sam wywołuje fragmenty kodu programisty, np. kontrolery, komponenty, zdarzenia lub metody cyklu życia.

Przykład

W aplikacji webowej framework może sam obsługiwać żądanie HTTP i wywołać odpowiednią metodę kontrolera:

@GetMapping("/users")
public List<User> getUsers() {
    return userService.findAll();
}

Programista nie pisze całego mechanizmu odbierania żądań HTTP od zera. Dostarcza tylko fragment logiki, który framework uruchamia w odpowiednim momencie.

Dlaczego to ważne?

Odwrócenie sterowania oznacza, że framework:

  • określa strukturę aplikacji,
  • narzuca sposób organizacji kodu,
  • zarządza cyklem życia elementów aplikacji,
  • wywołuje kod programisty wtedy, gdy jest potrzebny.

Dlatego w pytaniach egzaminacyjnych framework należy kojarzyć nie tylko ze zbiorem gotowych funkcji, ale przede wszystkim z fundamentem i szkieletem aplikacji.