2012-08-30 19 views

risposta

5

Fowler ha un buon confronto tra i due nel suo Inversion of Control Containers and the Dependency Injection pattern Heading. Nei suoi pensieri conclusivi, dice

Iniezione di dipendenza è un'alternativa utile al localizzatore di servizio. Quando le classi di applicazioni dell'edificio sono , le due sono approssimativamente equivalenti, ma I ritiene che Service Locator abbia un leggero vantaggio dovuto al suo comportamento più immediato . Tuttavia, se si stanno creando classi da utilizzate in più applicazioni, allora Dipendenza iniezione è una scelta migliore .

Puoi trovare altri punti di vista e confronti in here

per DI:

  • più facile determinare cosa dipendenze di un componente è - guarda costruttore.
  • Il componente non ha dipendenza su Service Locator, pertanto non presenta alcun problema se il componente viene utilizzato con un diverso framework .
  • DI può rendere il test più facile, ma un meccanismo di Locator buon servizio farà spegnendo altrettanto fattibile

Contro DI:

  • Harder per eseguire il debug e capire.
  • Il componente non può richiedere servizi aggiuntivi dall'iniettore una volta configurato.
Problemi correlati