Junior — Middle
როგორ განვახორციელოთ Singleton ნიმუში თანამედროვე დამოკიდებულების კონტეინერში?
sobes.tech AI
პასუხი AI-სგან
მოდერნულ დამოკიდებულების კონტეინერებში (მაგ., Spring, CDI) სინგლტონი ნიმუში რეალიზებულია კონტეინერის კონფიგურაციის მეშვეობით, რომელიც მართავს ობიექტის სიცოცხლის ციკლს და უზრუნველყოფს, რომ მხოლოდ ერთი ეგზემპლარი იქმნება.
მაგალითად, Spring-ში, ბინები დეფოლტად სინგლტონებია. საკმარისია ბინი გამოაცხადოთ:
@Component
public class MySingletonService {
// ლოგიკა
}
კონტეინერი შექმნის MySingletonService-ის ერთ ეგზემპლარს და გამოიყენებს მას ყველგან, სადაც ეს საჭიროა.
თუ ბინი ხელით იქმნება, შესაძლებელია სინგლტონის ზონა განისაზღვროს:
@Bean
@Scope("singleton")
public MySingletonService mySingletonService() {
return new MySingletonService();
}
ამ გზით, სინგლტონის რეგისტრაცია შეზღუდულია კომპონენტის გამოქვეყნებით სინგლტონის ზონაში, და კონტეინერი თავად გარანტიას იძლევა ეგზემპლარის უნიკალურობისა და მისი სიცოცხლის ციკლის მართვის შესახებ.