Skip to main content

Co je inverze kontroly?

Inverze kontroly (IOC) je programovací technika, ve které se používá obecná struktura kódu k řízení řady jedinečných a specifických podprogramů.To mění tradiční programovací metody, kde specifický kód řídí řadu opakovaně použitelných a obecných podprogramů vzhůru nohama.Inverze kontroly se obvykle používá v situacích, kdy programátor ví, že nebude muset znovu používat konkrétní kus kódu více než jednou, což umožňuje flexibilní design, kde programy podprogramy mohou být přepínány a ven bez podstatných změn v celkovém programu

Tradiční versus IOC programování

V tradičním programování bude hlavní tělo kódu opakovaně vyžadovat obecné podprogramy, které vykonávají jednotlivé funkce.Například v programu zabývajícím se účetnictvím bude podprogramy navržený tak, aby umožnil koncovým uživatelům vyhledat konkrétní číslo objednávky, pravděpodobně v různých částech programu několikrát, což uživateli umožní provést tento velmi obecný vyhledávací algoritmus zŘada různých oblastí programu.Opětovné použití kódu zjednodušuje proces programování, ale vytváří složitosti, pokud si programátor přeje vyladit algoritmus vyhledávání pro jednu část programu, aniž by to ovlivnilo ostatní části, ve kterých se kód používá., podprogramy s jediným vyhledáváním by nebylo povoláno několikrát v řadě oblastí programu.Místo toho by každá část programu obsahovala svůj vlastní zcela samostatný vyhledávací podprogram.To zvyšuje množství času potřebného k původně kódování programu, ale zjednodušuje jakékoli konkrétní vylepšení, které by bylo třeba později provést jednotlivým podprogramům v procesu návrhu.Změna jednoho podprogramu v jedné konkrétní oblasti ponechá zbytek programu zcela neovlivněn.Vzhledem k tomu, že komunikace mezi členy týmu se nutně ukáže, jak se zvyšuje počet pracovníků, inverze kontroly umožňuje každému týmu naprogramovat své vlastní individuální rutiny, což jim umožňuje fungovat nezávisle na druhém.Zjednodušuje také dopad chyb v systému, protože jakékoli přetrvávající chyby v každém týmu podprogramy ovlivní pouze jejich specifické části programu.Z tohoto důvodu, když jsou problémy objeveny v jedné části systému, měl by zbytek programu zůstat plně funkční.

Nevýhody IOC

Při inverzi kontroly může zjednodušit návrh programu, vyžaduje předchozí znalosti o tom, jak navrhnoutobjekty.I když každá rutina může být naprogramována jednotlivě, tvůrce IOC musí vědět, jak naprogramovat každou položku v případě, že je třeba provést změny, takže pro začínajícího programátora není vždy snadné používat IOC.Také proto, že každá rutina funguje nezávisle, jsou všechny zviditelné pro vnější svět, na který mohou některé společnosti zamračit.