Domanda

Una metafora che mi è rimasta in fase di programmazione sistemi non-DI è "una persona a giocare con il suo / suoi giocattoli". Una persona che è un oggetto e giocattoli della persona che sono tutto ciò che oggetto crea, negozi, inizializza e manipola. I giocattoli possono inviare eventi quando raggiungono un certo stato, ma non sanno nulla circa la persona che li utilizzano; sono solo piccole scatole nere con interruttori di comando che compongono le loro interfacce. La persona può ascoltare per eventi dai giocattoli e rispondere manipolando le loro interfacce. La persona può fare quello che lui / lei vuole con il suo / suoi giocattoli, ma lui / lei probabilmente non dovrebbe go immischiarsi con le loro interiora perché potrebbero rompersi.

La devastazione che seminano DI sul mio metafora è che si trasforma i giocattoli in esseri coscienti che sanno loro proprietario, la persona che li utilizzano. I giocattoli possono manipolare questa persona, ma la persona non sa nulla di come funzionano e non ha nemmeno la cura. La persona che possiede solo i giocattoli e si aspetta che i giocattoli a lui manipolare / lei a propria soddisfazione dei giocattoli.

WTF ?? Che suona orribile !!
Che cosa è una buona metafora mentale che sono stati usando per pensare a come sistemi DI lavoro?

È stato utile?

Soluzione

Il solido immagini motivazionali sono una buona fonte.

metafora del principio di iniezione di dipendenza

Altri suggerimenti

Pensate un gentiluomo e il suo maggiordomo. Il maggiordomo (il quadro DI) fornisce al signore qualsiasi servizio (dipendenze esterne) di cui ha bisogno su richiesta (e alcuni, come il caffè del mattino, su :-) "inizializzazione"); il signore (la classe) consuma solo i servizi e non gli importa da dove vengono, purché soddisfino le sue esigenze (attuare alcune interfaccia).

O se si vuole renderla più vicina alla vostra metafora, la classe è il bambino, il quadro DI è la mamma, ei giocattoli sono gli altri componenti. Il ragazzo non si cura, dove i giocattoli vengono, tutto il tempo che può giocare come vuole con loro.

Dal mio punto di vista la differenza tra DI e non-DI rispetto alla tua metafora è con sistemi non-DI, ognuno fa i propri giocattoli - devono sapere come farli e possono utilizzare solo i giocattoli che rendere. Con Di, la persona usa i giocattoli che sono dati. Non sanno come farli, ma possono giocare con tutti i giocattoli che sono dati a patto che sanno come si comporta il giocattolo.

Lego.

Si pensi un blocco Lego come un componente software che espone una o più interfacce (i piccoli urti in alto) e ha uno o più incastonatori o argomenti del costruttore (i fori sul fondo).

Quando si acquista una scatola di Lego, i blocchi non vengono preassemblati (hard-wired). Sono componenti indipendenti. È poi assemblare (collegarli) collegando interfacce (urti) per incastonatori / Costruttori (fori). Ogni blocco non sa nulla degli altri blocchi direttamente. Qualcosa di diverso il blocco è necessario per assemblarli - (. O main () o un file di Primavera di configurazione, ecc.) Che è si

Lo so ... questo si rompe un po 'perché Lego in gran parte hanno un'interfaccia uniforme - ma funziona per me: -)

Io uso sistema informatico. Si dispone di un blocco di sistema, e (un DI) di connettersi a un monitor, una tastiera e un mouse. Il blocco di sistema sa che un monitor è un dispositivo DVI, ma non importa quale monitor precisamente si tratta. Si sa come usare USB-mouse, ma non sa o cura del tempo è un ottico o un mouse a sfera a rotazione.

- il quadro DI
. blocco di sistema - è il sistema di essere servito
. Monitor / mouse / tastiera - servizi forniti da DI (voi) al blocco del sistema.

I giocattoli non sono consapevoli. Hanno appena lasciato i bit persona vincolo di stringa da ganci, e quando certe cose accadono, i ganci girano e la stringa viene tirato su, in modo che la persona sa qualcosa è successo.

Una metafora DI che mi è stato detto è stato quello di relazione con era quella di un lettore CD. Il giocatore non si preoccupa quello CD si mette in; tuttavia, ogni CD si inietta nel lettore offre diverse funzionalità in base a ciò che il giocatore richiede da esso.

Si tratta di samurai e le armi. Prova a controllare out Ninject: http://ninject.org/ . Vai al personaggio "Visita il Dojo" per una metafora interessante. Non sono sicuro se questo è quello che volevi dire ma è comunque creativa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top