Sobes.tech
Junior — Middle

Service Locator паттернин иштөө принциби жана анын колдонулушу программалык архитектурада?

sobes.tech AI

AIден жооп

Xizmat Topshiriq Toplayıcı modeli, ilovada bog'liqliklarni boshqarish uchun ishlatiladi. Uning mohiyati shundaki, markazlashtirilgan ob'ekt — xizmatlar topiluvchisi mavjud bo'lib, u qanday qilib kerakli xizmatlarni (belgilangan funksiyalar uchun javobgar bo'lgan obyektlar) yaratish va taqdim etishni biladi.

Qo'llanilishi:

  • Har bir sinf to'g'ridan-to'g'ri bog'liqliklarni yaratish yoki olish o'rniga, Xizmat Topshiriq Toplayıcıga murojaat qiladi.
  • Bu xizmatlarning amalga oshirilishini o'zgartirishni (məsələn, test uchun) osonlashtiradi.
  • Komponentlar orasidagi kuchli bog'liqlikni oldini oladi.

Swiftda misol:

protocol AnalyticsService {
    func track(event: String)
}

class ServiceLocator {
    static let shared = ServiceLocator()
    private var services = [String: Any]()

    func addService<T>(_ service: T) {
        let key = String(describing: T.self)
        services[key] = service
    }

    func getService<T>() -> T? {
        let key = String(describing: T.self)
        return services[key] as? T
    }
}

// Иштѳмал:
let analytics = MyAnalyticsService()
ServiceLocator.shared.addService(analytics)

if let analyticsService: AnalyticsService = ServiceLocator.shared.getService() {
    analyticsService.track(event: "AppStarted")
}

Андозолор: эгер сак болмасак, бу боюндовлардын көзөмөлүн жана тестирлөөнү кыйындатышы мүмкүн.