Какво е Inversion of Control?
Inversion of Control е принцип в програмирането, който обръща т.нар. „control flow“. „Control flow“ (или „flow of control“) наричаме реда (последователността) в който отделните заявки, инструкции или извиквания на функции в императивното програмиране се изпълняват или оценяват. Акцентът върху изричния контрол е това, което разграничава императивните програмни езици от декларативните такива. Но нека се върнем на инверсията.
При Inversion of Control (“IoC“ за по-кратко) отделни части от компютърната програма получават получават този поток (flow of control-а) от стандартна технологична рамка (framework). Софтуерна архитектура с IoC дизайн преобръща контрола в сравнение с традиционното процедурно програмиране: при него кодът, който изразява предназначението на програмата извиква преизползваеми библиотеки, които да се погрижат за еднотипните задачи, но при IoC е обратното – фреймуъркът извиква специфични части от кода, които са подходящи за определени задачи.
Inversion of control се използва, за да се повиши модулността на една програма и да я направи по-лесно разширима, като може да съчетава различни програмни парадигми. IoC е свързан, но все пак се различава от т.нар. ”dependency inversion principle”, който се отнася за отделянето на зависимости между „слоевете“ от високо и ниско ниво, чрез общи абстракции. Общата концепция е свързана и с event-driven програмирането, като често пъти се имплементира в съчетание с IoC, така че програмният код отговаря за обработката на събитията.
Inversion of Control е залегнал в Spring MVC технологичната рамка, която е отличен избор за разработката на съвременни Java уеб приложения. Ако имате основни познания по обектно-ориентирано програмиране с езика Java и искате да надградите своите умения по един пълноценен начин – направете това с курса „Java MVC Frameworks - Spring - февруари 2019“. Не пропускайте този шанс, а се запишете още днес!