Afhængighed inversion princip

FONT SIZE:
fontsize_dec
fontsize_inc
Januar 31, 2016 Marinus Bratt A 0 211

I objektorienteret programmering afhængigheden inversion princip, henviser til en særlig form for afkobling softwaremoduler. Når du følger dette princip, de konventionelle afhængighed relationer, der er etableret af højt niveau, politiske indstilling moduler til lavt niveau, afhængighed moduler omvendt, hvilket gør højt niveau moduler uafhængigt af lav-niveau detaljer de modul gennemførelsen. Princippet hedder:

Princippet inverterer den måde, nogle mennesker kan tænke på objektorienteret design, dikterer, at både høj- og lav-niveau objekter må afhænge af den samme abstraktion.

Beskrivelse

I konventionel ansøgning arkitektur, er lavere niveau komponenter beregnet til at blive indtaget af højere niveau komponenter, der gør det muligt i stigende grad komplekse systemer, der skal bygges. I denne sammensætning højere niveau komponenter direkte afhængig lavere niveau komponenter for at opnå nogle opgaver. Denne afhængighed af lavere niveau komponenter begrænser genbrug muligheder komponenter de højere niveau.

Målet med afhængigheden inversion princip er at afkoble ansøgning lim kode fra ansøgning logik. Genbrug lavt niveau komponenter bliver lettere og vedligeholde øges. Dette lettes ved separation af komponenter og lav-niveau komponenter højt niveau i separate pakker / biblioteker, hvor grænseflader definerer adfærd / tjenester, som på højt plan komponent ejes af, og findes inden for højt niveau komponent pakke. Gennemførelsen af ​​det høje niveau komponentens grænseflade med det lave niveau komponent kræver, at lavt niveau komponent pakke afhænger af højt niveau komponent til kompilering, og dermed vende den konventionelle afhængighed forhold. Forskellige mønstre såsom Plugin, service Locator eller Dependency Injection derefter ansat til at gøre det lettere at run-time klargøring af den valgte lavt niveau komponent implementering til på højt niveau komponent.

Påføring af afhængighed inversion princip kan også ses som at anvende adapteren mønster, dvs højt niveau klasse definerer sin egen adapter-interface, som er indvinding, at de andre højt niveau klasser afhænger af. Den adaptee implementering afhænger også af adapteren interfacet abstraktion, mens det kan implementeres ved hjælp af kode fra inden for sin egen lavt niveau modul. På højt plan har nogen afhængighed af det lave niveau modul, da den kun bruger den lavt niveau indirekte gennem adapteren interfacet ved at påberåbe sig polymorfe metoder til grænsefladen, som gennemføres af adaptee og dens lavt niveau modul.

Historie

Afhængigheden inversion princip blev postuleret af Robert C. Martin og beskrevet i flere publikationer, herunder papir Objektorienteret Design Kvalitet Metrics: en analyse af afhængigheder, en artikel i C ++ rapport i maj 1996 vedrørende afhængigheden Inversion Princip, og bøgerne Agile Software Development, principper, mønstre og praksis, og Agile principper, Mønstre, og praksis i C #.

  0   0
Forrige artikel Chandra Bhan Prasad
Næste artikel Daddys Gone A-Hunting

Kommentarer - 0

Ingen kommentar

Tilføj en kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tegn tilbage: 3000
captcha