Junior — Middle
Service Locator deseninin çalışma prensibini ve uygulamalarda mimarideki kullanımını açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Service Locator Deseni, uygulamada bağımlılıkları yönetmek için kullanılır. Özünde, merkezi bir nesne — hizmet bulucu — vardır ve bu nesne, ihtiyaç duyulan hizmetleri (belirli fonksiyonlardan sorumlu nesneleri) nasıl oluşturup sağlayacağını bilir.
Uygulama:
- Her sınıf doğrudan bağımlılıkları oluşturmak veya almak yerine, Service Locator'a başvurur.
- Bu, hizmet uygulamalarının değiştirilmesini (örneğin, testler için) kolaylaştırır.
- Bileşenler arasındaki güçlü bağımlılığı önlemeye yardımcı olur.
Swift'te örnek:
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
}
}
// Kullanım:
let analytics = MyAnalyticsService()
ServiceLocator.shared.addService(analytics)
if let analyticsService: AnalyticsService = ServiceLocator.shared.getService() {
analyticsService.track(event: "AppStarted")
}
Eksiler: dikkatli kullanılmazsa bağımlılıkların takibini ve testleri zorlaştırabilir.