Perché Angular 2 consiglia di utilizzare i Servizi per effettuare chiamate HTTP

0

Nel tutorial ufficiale di Angular 2 , qualsiasi operazione che richiede ottenere o salvare una lezione richiede usando un servizio. Per una classe Hero , hanno dovuto creare un HeroService per eseguire tutte le chiamate HTTP. Ciò include ottenere un singolo oggetto Hero con heroService.getHero e creare o aggiornare un singolo oggetto Hero con heroService.create o heroService.update .

Contrasta con mangusta . La maggior parte delle operazioni per ottenere o salvare una classe in mangusta viene eseguita tramite un metodo sull'oggetto stesso, anziché utilizzare un servizio. L'equivalente di Mongoose di heroService.getHero sarebbe Hero.findOne . Invece di heroService.create o heroService.update , la mangusta avrebbe Hero.create o hero.save .

Certo, Angular 2 è un intero framework di frontend, e mangusta è una libreria di backend specifica per mongodb. Quindi la mia domanda è: ci sono vantaggi o limitazioni specifici che richiedono che Angular 2 usi un servizio per queste operazioni, al contrario di eseguire semplicemente chiamate HTTP tramite metodi sull'oggetto stesso? O è interamente un scelta di progettazione, dove in entrambi i casi avrebbe potuto funzionare altrettanto bene?

    
posta Zsw 20.03.2017 - 17:20
fonte

1 risposta

1

A causa dell'astrazione delle chiamate HTTP. In HeroService puoi cambiare l'url di contesto alle chiamate http senza modificare la parte principale dell'applicazione, o creare HeroService mock, o ri-implementarlo nel modo che preferisci (anche per un altro protocollo). HeroService dovrebbe salvare l'eroe e tornare. Il resto dell'applicazione (chiamanti di HeroService) NON dovrebbe sapere come lo sta facendo HeroService. Si nasconde l'implementazione. L'eroe non dovrebbe salvare se stesso (come)? HeroService dovrebbe essere anche senza stato.

    
risposta data 20.03.2017 - 18:00
fonte

Leggi altre domande sui tag