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 kawałka kodu więcej niż jeden raz, umożliwiając elastyczną konstrukcję, w której podprogramy programu mogą być włączone bez znaczących zmian w programie
W tradycyjnym programowaniu główny organ kodu wielokrotnie wymaga ogólnych podprogramów, które wykonują poszczególne funkcje. Na przykład w programie zajmującym się rachunkowością podprogram zaprojektowany w celu umożliwienia użytkownikowi końcowi na wyszukiwanie określonego numeru zamówienia będzie prawdopodobnie wielokrotnie wywołane w różnych sekcjach programu, co umożliwia użytkownikowi wykonanieTen bardzo ogólny algorytm wyszukiwania z wielu 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.
Korzystając z tego samego przykładu w ramach inwersji 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 resztę programu całkowicie nienaruszone.
AdvantagES z IOC
Jedną z głównych zalet tej techniki jest to, że projektowanie jest znacznie łatwiejsze podczas pracy w dużych zespołach. 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 na podprogramach każdego zespołu wpłyną tylko na ich konkretne sekcje programu. Z tego powodu, gdy wykryto problemy w jednej części systemu, reszta programu powinna pozostać w pełni funkcjonalna.
Wady MKOl
Podczas gdy inwersja kontroli może uprościć projektowanie programu, wymaga wcześniejszej wiedzy na temat projektowania obiektów. Chociaż każda rutyna może być programowana indywidualnie, twórca MKOC musi wiedzieć, jak zaprogramować każdy element na wypadek, gdy należy wprowadzić zmiany, więc nie zawsze jest to łatwe dla początkowegoNG Programista do zatrudnienia 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.