2011-09-14 17 views
5

Il localizzatore di servizi sembra un concetto molto utile e vorrei implementarlo nella mia app. Tuttavia, ho alcune domande su come dovrebbe essere implementato e su come dovrebbe essere usato in congiunzione con altri paradigmi di programmazione.Informazioni sul modello di localizzazione del servizio

  1. La SL deve gestire il servizio che sta archiviando? Cioè, quando la SL viene distrutta, dovrebbe anche distruggere il servizio stesso, o dovrebbe lasciarlo a chiunque abbia registrato il servizio?

  2. Che dire di Dipendenza iniezione? Ora che ho una SL c'è qualche punto nel passare la SL intorno come parametro o dovrei accedervi globalmente? Dopotutto, gran parte dell'intero scopo di DI è coperto da SL, e non mi piacerebbe ingombrare molte delle mie funzioni con un altro parametro.

risposta

8

Si potrebbe pensare che ho scritto questo articolo (non ho), considerando quanto spesso mi riferisco ad esso:

Service Locator is an Anti-Pattern

Dependency Injection rende le dipendenze esplicite. L'ubicazione del servizio li seppellisce nell'implementazione e crea una forte dipendenza dal localizzatore.

+2

Ottimo articolo per C# e Java ma non così eccezionale per C++. C++ offre costrutti (ad esempio, nuovi operatori di overload e di eliminazione) senza alcun modo per iniettare dipendenza. –

+0

L'articolo parla di java - non di C++, quindi non molto utile. –

Problemi correlati