[flutter] get_it를 사용하여 특정 타입에 대한 무작위 객체를 생성하는 방법은?
get_it은 플러터에서 의존성 주입(Dependency Injection)을 지원하는 라이브러리입니다. 이 라이브러리를 사용하면 객체의 생성 및 관리를 편리하게 할 수 있습니다. 특정 타입에 대한 무작위 객체를 생성하기 위해서는 get_it의 registerFactory 또는 registerLazySingletonFactory 메서드를 사용할 수 있습니다.
registerFactory 메서드는 매번 요청이 있을 때마다 객체를 생성하는 팩토리 함수를 등록합니다. registerLazySingletonFactory 메서드는 처음 요청이 있을 때 객체를 생성하고 이후에는 동일한 객체를 반환하는 팩토리 함수를 등록합니다.
아래는 get_it를 사용하여 특정 타입에 대한 무작위 객체를 생성하는 예제 코드입니다.
import 'package:get_it/get_it.dart';
class RandomObject {
final String name;
RandomObject(this.name);
}
void registerRandomObject() {
GetIt getIt = GetIt.instance;
getIt.registerFactory<RandomObject>(() => RandomObject('Random Object'));
}
void main() {
registerRandomObject();
GetIt getIt = GetIt.instance;
RandomObject randomObject = getIt<RandomObject>();
print(randomObject.name); // 출력: Random Object
// 다시 요청해도 같은 객체가 반환됩니다.
RandomObject randomObject2 = getIt<RandomObject>();
print(randomObject2.name); // 출력: Random Object
}
위의 코드에서는 RandomObject 클래스를 정의하고, registerRandomObject 함수에서 get_it의 registerFactory 메서드를 사용하여 팩토리 함수를 등록합니다. main 함수에서는 get_it의 get 메서드를 사용하여 RandomObject 객체를 가져와서 출력합니다. 이후에도 get 메서드를 호출하면 동일한 RandomObject 객체가 반환됩니다.
get_it을 사용하여 의존성 주입을 관리하면 객체의 생성과 관리를 편리하게 할 수 있으며, 코드의 모듈성과 유연성을 높일 수 있습니다.
참고 문서: get_it 라이브러리