Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ της περιοχής ορατότητας 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 προσφέρει πολλαπλές ανεξάρτητες παρουσίες, επηρεάζοντας τη διαχείριση κατάστασης και την απόδοση της εφαρμογής.