Központosított üzleti logikát, adatkezelést és megosztott funkcionalitást nyújt az alkalmazás különböző részei számára.
Service példányosítás
Azt jelenti, hogy az adott service-t elérhetővé tesszük az alkalmazásban, és létrehozunk egy példányt belőle, amelyet injektálhatunk más komponensekbe vagy szolgáltatásokba.
Angularban a service-ek olyan osztályok, amelyek kiszervezett funkciókat biztosítanak az alkalmazás számára. Ezek a funkciók gyakran kapcsolódnak adatok kezeléséhez, kommunikációhoz egy szerverrel vagy bármilyen más logikához, amelyet nem szeretnénk közvetlenül az összetevőkben (components) tárolni.
Az Angular service-ek használatának néhány gyakori példája:
- Adatkezelés: Az adatok tárolása, módosítása és lekérdezése.
- HTTP kérések: Kommunikáció egy REST API-val az HttpClient modul használatával.
- Autentikáció: Felhasználói bejelentkezés és kijelentkezés kezelése.
- Logger: Alkalmazás-események naplózása.
- Konfiguráció: Globális beállítások tárolása és elérése.
- Eseménykezelés: Események központi kezelése és közvetítése az alkalmazáson belül.
- Közös funkciók: Olyan funkciók, amelyeket több összetevő is felhasználhat.
A service-k használatának patternje az Angularban:
- Dekorálás a
@Injectable()dekorátorral: Ez lehetővé teszi az Angular számára, hogy az osztályt mint service-t kezelje, és beinjektálja az alkalmazás összetevőibe vagy más service-ekbe.
@Injectable({
providedIn: 'root'
})
- Konstruktorban való injektálás: Az Angular Dependency Injection (DI) rendszere lehetővé teszi, hogy a service-t injektáljuk egy összetevő vagy egy másik service konstruktorába.
constructor(private myService: MyService) { }
- A Singleton pattern használata: A
providedIn: 'root'beállítással az Angular a service-t singletonként kezeli, ami azt jelenti, hogy az egész alkalmazásban csak egy példánya lesz.
A service-ek kiszervezése az alkalmazás logikájának modularizálását és újrahasznosítását teszi lehetővé, így az összetevők egyszerűbbek és karbantarthatóbbak maradnak.