GetxController를 사용하다보면 일부 컨트롤러의 경우 싱글턴 객체처럼 앱이 실행되는 동안 인스턴스를 계속 유지하고 싶어지는 순간이 발생하는 경우가 많다.
나는 이런 경우 아래와 같은 방법을 사용했었다.
class SomeController extends GetxController{
static final SomeController _instance = SomeController._init();
factory SomeController(){
return _instance;
}
SomeController._init(){
print("SomeController initialized");
}
/* some code */
}
전형적인 싱글턴 패턴을 적용한 GetxController로, 싱글턴 패턴의 적용을 통해 프로그램이 실행되는 동안 같은 동일한 인스턴스에 접근할 수 있도록 해준다.
그런데 최근 GetX문서를 살펴보던 중 GetxService를 알게 되었는데, 굉장히 유용했다. 싱글턴패턴처럼 프로그램이 실행되는 동안 동일한 인스턴스에 접근할 수 있도록 하는 기능을 제공하는데, 아래와 같이 작성할 수 있다.
class SomeService extends GetxService{
/* some code */
}
그저 GetxService를 상속받을 뿐인데 GetxController와 동일하게 사용할 수 있으면서 동시에 싱글턴 패턴을 직접 작성하지 않아도 된다.
앞으로는 좀 더 공식문서를 꼼꼼하게 살펴보면서 좀더 생산성을 높일 수 있도록 노력해야겠다.