Junior — Middle
Layihələrinizdə xidmətlərə idarə olunan giriş üçün Service Locator nümunəsindən istifadə etdinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Bəli, mən layihələrimdə xidmətlərə və komponentlərə mərkəzləşdirilmiş giriş üçün Service Locator nümunəsindən istifadə etmişəm.
Service Locator, lazım olan xidməti (məsələn, DI konteyneri və ya fabriki vasitəsilə) necə əldə edəcəyini bilən və onu müştərilərə sorğu əsasında təqdim edən obyektidir. Bu, xüsusən böyük tətbiqlərdə asılılıqları idarə etməyi sadələşdirir.
C# nümunəsi:
public interface IService {}
public class MyService : IService {}
public class ServiceLocator
{
private static readonly Dictionary<Type, object> services = new Dictionary<Type, object>();
public static void Register<T>(T service) where T : class
{
services[typeof(T)] = service;
}
public static T Get<T>() where T : class
{
services.TryGetValue(typeof(T), out var service);
return service as T;
}
}
// İstifadə
ServiceLocator.Register<IService>(new MyService());
var service = ServiceLocator.Get<IService>();
Lakin, Service Locator asılılıqları gizlədə və testləri çətinləşdirə bilər, ona görə də müasir layihələrdə açıq asılılıq inyeksiyasını (Dependency Injection) üstün tuturlar.