Viðsnúningur á stjórn
Inversion of Control (IoC) er hönnunarmynstur sem gerir forriturum kleift að skrifa lauslega tengda og módulega kóði. Það er forritunarlíkan þar sem stjórn á flæði forritsins er snúið við frá hefðbundinni nálgun, þar sem kóði forritsins stýrir framkvæmdaráflæði. Í staðinn gerir IoC rammanum eða ílátinu kleift að stýra framkvæmdaráflæði með því að útvega háð tengslum kóða forritsins.
Aðalmarkmið IoC er að draga úr tengslum milli hluta forritsins og háðanna. Í hefðbundinni nálgun ber kóði forritsins ábyrgð á að búa til og stjórna háðunum sínum. Þessi nálgun leiðir til þröngra tengsla milli hlutanna, sem gerir viðhald og prófanir forritsins krefjandi. Með IoC lýsir kóði forritsins eingöngu háðunum sínum og ramminn eða ílátinu sér um að búa til og stjórna þeim.
IoC-mynstrið er innleitt með tveimur aðal aðferðum: Dependency Injection (DI) og Service Locator-mynstri. Dependency Injection er aðferð þar sem háð tengsl hlut eru sprautuð inn í hann af rammanum eða ílátinu. Service Locator-mynstrið er aðferð þar sem forritskóði biður um háð tengsl frá miðlægum þjónustuleitara, sem skilar viðeigandi háða tengslum.
Kostir þess að nota IoC eru aukin móduleiningagerð, prófanleiki og viðhaldanleiki forritsins. Með því að draga úr tengslum milli eininga verður auðveldara að breyta eða skipta þeim út án þess að hafa áhrif á restina af forritinu. Notkun IoC gerir það einnig auðveldara að skrifa einingapróf fyrir forritið.
IoC er víða notað í nútíma hugbúnaðarþróun, Og margir rammasáttir og bókasöfn bjóða upp á stuðning við það. Sumir vinsælir IoC-íláti eru Spring, Guice og Autofac. Með því að nota þessa íláta geta forritarar einbeitt sér að því að skrifa viðskiptalógík forritsins, á meðan ílátið sér um háðin.
Að lokum er Inversion of Control öflug hönnunarmynstur sem gerir forriturum kleift að skrifa módulegan, prófanlegan og viðhaldanlegan kóða. Með því að nota IoC geta forritarar dregið úr tengslum milli þátta forritsins, sem auðveldar breytingar og viðhald. IoC er mikið notað í nútíma hugbúnaðarþróun og margir rammasettir og bókasöfn styðja það.