Ποια είναι η διαφορά μεταξύ της περιοχής ορατότητας Singleton και Prototype στο πλαίσιο των εξαρτήσεων;
sobes.tech AI
Απάντηση από AI
Στο πλαίσιο της εξάρτησης εισαγωγής, το scope (πεδίο) καθορίζει τον κύκλο ζωής και τον αριθμό των αντικειμένων που δημιουργούνται.
-
Singleton: το αντικείμενο δημιουργείται μία φορά σε ολόκληρο τον κύκλο ζωής της εφαρμογής ή του διαχειριστή DI. Όλες οι αιτήσεις σε αυτήν την εξάρτηση λαμβάνουν την ίδια παρουσία. Αυτό είναι βολικό για υπηρεσίες που πρέπει να διατηρούν κατάσταση ή να μοιράζονται.
-
Prototype: σε κάθε αίτηση δημιουργείται μια νέα παρουσία του αντικειμένου. Αυτό είναι χρήσιμο όταν απαιτείται ανεξάρτητο αντικείμενο με δική του κατάσταση.
Παράδειγμα:
// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
// μία παρουσία για όλη την εφαρμογή
}
// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
// νέα παρουσία σε κάθε αίτηση
}
Έτσι, το Singleton παρέχει μια μοναδική παρουσία, ενώ το Prototype προσφέρει πολλαπλές ανεξάρτητες παρουσίες, επηρεάζοντας τη διαχείριση κατάστασης και την απόδοση της εφαρμογής.