Skip to main content

Co to jest inwersja kontroli?

Inwersja kontroli (IOC) jest techniką programowania, w której ogólna struktura kodu jest używana do rządzenia szeregiem unikalnych i specyficznych podprogramów.Zmienia to tradycyjne metody programowania, w których konkretny kod reguluje szereg podprogramów wielokrotnego użytku i ogólnych podprogramów, do góry nogami.Inwersja kontroli jest zwykle stosowana w sytuacjach, w których programista wie, że nie będzie musiał ponownie używać określonego kodu więcej niż jeden raz, umożliwiając elastyczną konstrukcję, w której podprogramy programów mogą być włączone bez znaczących zmian w programie ogólnym.Na przykład w programie zajmującym się rachunkowością podprogram zaprojektowany w celu umożliwienia użytkownikowi końcowego wyszukiwania określonego numeru zamówienia będzie prawdopodobnie wielokrotnie wywołane w różnych sekcjach programu, co umożliwia użytkownikowi wykonanie tego bardzo ogólnego algorytmu wyszukiwania zWiele różnych obszarów programu.Ponowne wykorzystanie kodu upraszcza proces programowania, ale tworzy złożoność, jeśli programista chce dostosować algorytm wyszukiwania dla jednej sekcji programu bez wpływu na inne sekcje, w których używany jest kod.

Używając tego samego przykładu w ramach scenariusza sterowania, podprogram pojedynczego wyszukiwania nie byłby nazywany wielokrotnie w wielu obszarach programu.Zamiast tego każda sekcja programu zawierałaby własną całkowicie samodzielną podprogram wyszukiwania.Zwiększa to czas potrzebny na początkowe kodowanie programu, ale upraszcza wszelkie konkretne poprawki, które mogą być konieczne później w poszczególnych podprogramach w procesie projektowania.Zmiana jednego podprogramu w jednym określonym obszarze pozostawi pozostałą część programu całkowicie nienaruszoną.

Zalety MKOl

Jedną główną zaletą tej techniki jest to, że projektowanie jest znacznie łatwiejsze podczas pracy w zespołach na dużą skalę.Ponieważ komunikacja między członkami zespołu koniecznie okazuje się coraz trudniejsza wraz ze wzrostem liczby pracowników, inwersja kontroli pozwala każdemu zespołowi programować własne rutyny, umożliwiając im funkcjonowanie niezależnie od siebie.Upraszcza także wpływ błędów w systemie, ponieważ wszelkie utrzymujące się błędy w podrzędnych drużynach wpływają tylko na ich konkretne sekcje programu.Z tego powodu, gdy problemy są wykryte w jednej części systemu, reszta programu powinna pozostać w pełni funkcjonalna.

Wady MKOl

Podczas gdy inwersja kontroli może uprościć projekt programu, wymaga wcześniejszej wiedzy na temat projektowaniaobiekty.Podczas gdy każda rutyna może być programowana indywidualnie, twórca MKOl musi wiedzieć, jak zaprogramować każdy element, w przypadku zmian należy wprowadzić, więc początkujący programista nie zawsze jest łatwy do zatrudniania MKOl.Ponadto, ponieważ każda rutyna działa niezależnie, wszystkie są widoczne dla świata zewnętrznego, które mogą być zmarszczone przez niektóre firmy.