Ohjauksen käännös

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 26.5.2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Ohjauksen inversio (  IoC ) on tärkeä olio -ohjelmointiperiaate , jota käytetään vähentämään kytkentää (kytkentää) tietokoneohjelmissa [1] . Se on myös arkkitehtoninen integraatioratkaisu, joka yksinkertaistaa järjestelmän ominaisuuksien laajentamista, jossa ohjelman ohjausvirtaa ohjaa viitekehys [2] .

Normaalissa ohjelmassa ohjelmoija päättää, missä järjestyksessä proseduurikutsut tehdään. Mutta jos kehys on käytössä , ohjelmoija voi sijoittaa koodinsa tiettyihin suorituspisteisiin (käyttämällä takaisinkutsuja tai muita mekanismeja) ja suorittaa sitten kehyksen "päätoiminnon", joka hoitaa kaiken suorituksen ja kutsuu ohjelmoijan koodia tarvittaessa. Tämän seurauksena koodin suorittamisen hallinnan menetys - tätä kutsutaan ohjauksen käänteiseksi (kehys ohjaa ohjelmoijan koodia, ei ohjelmoija ohjaa kehystä).

Ohjauksen inversio ei tapahdu vain kehyksissä, vaan myös joissakin kirjastoissa (mutta yleensä kirjastot eivät luo ohjauksen käänteistä - ne tarjoavat joukon toimintoja, jotka ohjelmoijan on kutsuttava).

Kuvaus

Eräs riippuvuuden hallintaan sovelletun ohjauksen inversion toteutus on riippuvuuden lisäys [ 2 ] [ 3] .  Riippuvuusinjektiota käytetään monissa kehyksissä, joita kutsutaan IoC-säiliöiksi.

Alemman tason teknologioihin verrattuna IoC-säilö on linkki , joka ei kerää objektitiedostoja , vaan OOP - objekteja ( luokkainstanssit ) ohjelman suorituksen aikana . Ilmeisesti tällaisen idean toteuttamiseksi oli tarpeen luoda paitsi itse linkkeri, myös esineitä valmistava tehdas . Tällaisen linkerin analogi (tietysti toimivampi) on kääntäjä , jonka yksi tehtävistä on objektitiedostojen luominen. Ajatus ohjelman linkittämisestä suorituksen aikana ei ole uusi. Ohjelmoijan riippuvuuden lisäämistyökalujen tarjoaminen on antanut paljon enemmän joustavuutta kehitykseen ja mukavuutta testauskoodiin [4] .

Toteutusmenetelmät

Kritiikki

Kaikilla ohjauksen inversioon perustuvilla lähestymistavoilla on seuraavat kaksi haittaa [5] :

Muistiinpanot

  1. Ohjauksen käännös Managed Extensibility Frameworkin (MEF) avulla . Haettu 6. lokakuuta 2016. Arkistoitu alkuperäisestä 4. tammikuuta 2017.
  2. 12. Yang , 2012 .
  3. Robert C. Martin. Clean Code: Agile Software Craftsmanship -käsikirja. - Pearson Education, 2008. - S. 157. - ISBN 978-0-13-608325-2 .
  4. Martin Fowler. Ohjaussäiliöiden käännös ja riippuvuusruiskutuskuvio . Haettu 6. lokakuuta 2016. Arkistoitu alkuperäisestä 30. toukokuuta 2020.
  5. Agha, G. ja Igarashi, A. ja Kobayashi, N. ja Masuhara, H. ja Matsuoka, S. ja Shibayama, E. ja Taura, K. Concurrent Objects and Beyond: Papers omistettu Akinori Yonezawa on the Occasion of His 65-vuotis syntymäpäivä. - Springer Berlin Heidelberg, 2014. - S. 433. - ISBN 9783662444719 .

Kirjallisuus

Linkit