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-ი მრავალ დამოუკიდებელ ნიმუშს, რაც გავლენას ახდენს მდგომარეობის მართვაზე და აპლიკაციის შესრულებაზე.