Home 서비스 로케이터(SL)란
Post
Cancel

서비스 로케이터(SL)란

서비스 로케이터(SL)란?

📌 정의

애플리케이션에 필요할 수 있는 모든 서비스를 얻는 방법을 알고있는 객체를 갖는 것이다.

IoC구현하는 DI 외 방법 중 하나.

🔗 종속성 다이어그램

img

실제 사용방법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class ServiceLocator{
    private static ServiceLocator sInstance;
    public static void load(ServiceLocator arg) {
        sInstance = arg;
    }
    private Map services = new HashMap();
    public static Object getService(String key){
        return sInstance.services.get(key);
    }
    public void loadService (String key, Object service) {
        services.put(key, service);
    }
}

class Loader {
   private void configure() {
        ServiceLocator locator = new ServiceLocator();
        locator.loadService("LocalBookFinder", new LocalBookFinder());
        locator.loadService("RemoteBookFinder", new RemoteBookFinder());      
        ServiceLocator.load(locator);
    }
}

class Library{
	BookFinder finder = (BookFinder) ServiceLocator
        .getService("LocalBookFinder");
}

위 코드를 보면 ServiceLocator에 Loader가 Service를 추가해주고, Library class에서 그 Service를 injection해서 사용한다.

Factory와 차이점

Factory는 이름과 같이 객체를 생성해주는 것이고, SL은 서비스(객체)를 가져오는 것이라고 보면 된다.

👍 다른 방법들..

IoC를 구현하는 다른 방법은 아래와 같이 있다.

  • Events
  • Delegates

등 등

This post is licensed under CC BY 4.0 by the author.