És nem érdekel, java for fun, hogy függőség injekció, a kontroll megfordítása és miért keletkeztek
Osztály X függ Y osztályú, ha az egyik a következő feltételek:
* X-Y, és kéri, hogy
* X jelentése egy Y
* X függ néhány Z osztály, amely attól függ, Y (a tranzitivitás elve)
X függ Y nem jelenti azt, hogy az Y függ X. Ha vannak mindkét funkciót, ez az úgynevezett ciklikus függőség: X nem lehet használni anélkül, hogy az Y, és fordítva. A létezése nagyszámú körkörös függőségeket egy objektum-orientált program indikátora lehet nem az optimális szoftver építése.
Ha x (osztály X) kéri módszerek egy objektum tárgy y (osztály Y), akkor X függ Y függés lehet fordított bevezetésével egy harmadik osztályt, nevezetesen egy interfész osztály I., amelynek tartalmaznia kell minden módszer, hogy x okozhat y. Ezen kívül, az Y végre kell hajtania a felület I. Az X és Y jelentése most mind függ I, és X osztály már nem függ az Y osztályú; azt feltételezzük, hogy X nem hajtja végre Y.
Ez a kivétel függően osztály X Y olyan határfelület bevezetésével I mondják a kontroll megfordítása (vagy dependencia Injection).
Meg kell jegyezni, hogy az Y függhet más osztályokba. Mielőtt a változás függ Y X, így közvetetten függ minden osztály, amely attól függ, Y. alkalmazása megfordítása állítóművekre mindezek közvetett függőség törtek - nem csak a függőség X Y. Az új felület I. semmit független.
A dolog világos, hogy sötét van. Én személy szerint értem, mi van írva, de még meg kell törzset. És mi lenne a nagymamám lép mindezt?
Mindig is hittem (és hinni), hogy meg kell kezdeni a történelem valamit. Csak miután elhaladtak egészen az evolúció, tudjuk pontosan megérteni, hogy miért találták fel ezt az eszközt, és ez így van és nem másként. Amikor újra feltalálni a kereket, akkor jobban megérteni, hogy miért forog.
Tehát kezdjük az elején. És az elején volt egy eljárási programozási nyelv. Eljárások írt egy processzor (dliiiinnye ilyen eljárások). Az alprogram (egyéb eljárások) találatként jelenik meg kell használni egy már írt egy darab kódot máshol (általában lustaságból). De ez kevéssé érdekes számunkra - Csak azt akartam, hogy emlékezzen, amikor a kód erősen kapcsolódik.
Egy kicsit később jöttünk fel objektumorientált programozási nyelv a tokozás mint zdorovski hatással van ez a nagyon „erős összekapcsolódás” (abba az irányba gyengülése, természetesen). Most szó protsedurschika kód beépítve néhány repository (osztályok), egyesüljünk egy elv - „együtt adatok felhasználásával - együtt élnek (az osztályban)”, és csak egy kis része ezeknek az eljárásoknak (és a helyes módszerek adatfeldolgozási módszerek ) látható, hogy a külvilág - ők lettek közismertek. Minden más módszereket használtak az órákon, de nem látható kívülről - magán. Most a programozó úgy dönt, hogy melyik kód az osztály lehet újra más osztályokba (állami módszerekkel), és mi nem (magán gyakorlat).
Meg kell bevezetni egy új koncepció a felület - mint a beállított nyilvános eljárások egy osztály, és ennek eredményeként a kód újrafelhasználásának interfészen keresztül az osztály - a függőség az osztályok. Most a kód kapcsolódik erősen vagy nem, azért jöttek, hogy meghatározza elsősorban a mértéke függőség osztályok.
Nos, ha a kapcsolat egyoldalú, de vannak esetek, amikor a kommunikáció kétirányú. Apple tud a féreg és a féreg tudni egy almát, és együtt minden tud rólam, hogy összegyűjtse a harapás ez az alma. Bonyolult. Először is megszabadulni a kétirányú függőség felé egyoldalú. Ahhoz, hogy a Kushán alma féreg anélkül, hogy észrevennénk, és megettem mindkét kérdezés nélkül adtak engedélyt.
Azonban, megoldása minden kétoldalú kommunikációs programozó még arra a következtetésre jutott, hogy az egyirányú kommunikáció, és is nemkívánatos, különösen közötti véges számú osztályba van néhány hasonló absztrakció (jelenlétében azonos csoportok adatfeldolgozási módszerek - vagyis a közös interfész részek).
Itt kell, hogy a koncepció az interfész és a végrehajtás. Akkumulátor - felület. És annak végrehajtására különböző lehet: alkáli, 777, NiMH, Li-ion, U235, vagy valami más. A paraméterek, amelyek azt állítja, hogy ez a cél - „Battery” az a módszer, az objektum magasságát, henger alakú, feszültség ellektrichesogo áram a sarkokon. amelynek két pólus, amelyek közül az egyik dudorok. Az a kifejezés, „ez az elem” (vagy pontosabban, ez az objektum úgy viselkedik, mint egy elem), a PFSZ kell érteni, mint az objektum megvalósítja az „elem” felület.
Mivel hiányzik a kapcsolat a konkrét végrehajtás és az ügyfél kódot használja. a listákon gyakran festett az alábbiak szerint:
ez volt:
És számos különböző megvalósítások valahogy
Most minden azon múlik a felületen. Ez a megközelítés a változások bevezetése a függőség felület úgynevezett inverziós of Control. Ebben a megközelítésben a felületet kell érteni, mint egy szerződést egy leírást, hogyan kell viselkedni, mint egy tárgy, ha azt akarja, hogy kell használni a másikat.
De ez nem olyan egyszerű. Nos, ha teljes mértékben ki tudjuk cserélni a kategóriájában ügyfél összes hely, ahol az említett osztály-megvalósítás annak felületén. De maradhat legalább egy hely, ahol minden ugyanaz lesz a továbbiakban a class-megvalósítás. Ez az a hely, ahol az osztály megvalósítása jön létre. Ez a következőképpen néz ki:
Akkumulátor AlkalaynovayaBatareyka = new ();
A függőség most határozza meg egyetlen sort, és tudjuk, hogy ez egy külön eljárás (egyszeri gyári)
állami végső besorolással FabrikaBatareek
public static poluchitBatareyku akkumulátor (TipBatareyki típus)
Nos, ez valószínűleg azért, mert én vagyok az alany és a szöveg van írva: „Mi függőség injekciót?”. Elvileg, akkor is elfog a kérdésre, hogy „hogyan kell használni függőség injekció” vagy „A függőség injekció egy egyszerű,” akkor valószínű, hogy a kifejezés Függőség injekció felmegyek egy kicsit magasabb :) De a lényeg az, hogy ne vigyük túlzásba, mert A Google nem hülye, és láthatjuk, hogy csinálok az úgynevezett szürke optimalizálása és egyszerűen betiltották. Ha nem vette volna észre.
Általában az előfordulása ezt a bejegyzést, hanem következménye az edzés helyett véletlen. Szóval köszönöm Max!
Jó a cikk. Csak vágja le a legérdekesebb hely :(
Tehát soha. Semmi, eljön, és én hozzá.
Ha érdekli valami mást, írni, amit - én több motivált arra, hogy mi már beadását követően a poszt javát.
Eh. A legérdekesebb hely megállt.
Ha muszáj a folytatása blog csatolva az arra való utalás itt :)
ATP
Vigyázat olvasó
Ebben a blog megosztani tapasztalataimat. Nem érdemes kipróbálni mindent, ami itt leírt - káros lehet az Ön számára, vagy az emberek körül. Felelősség a használata az ötleteket leírt blog - teljes mértékben terheli az olvasót.
Hogyan talál egy cikket a blog?
Azt yuzayu google erre, melyben adja meg a két szó: „és nem érdekel”, és hogy néhány, amit kerestem - ez gyorsabb. példa