반응형
Flutter에서 factory는 생성자(constructor)를 정의하는 키워드입니다. 일반적으로 생성자는 클래스의 인스턴스를 생성하는 데 사용됩니다. 하지만 factory 생성자는 다른 방식으로 인스턴스를 생성하며, 일반적으로 캐시(cache)나 싱글톤(singleton) 패턴을 구현하는 데 사용됩니다.
factory 생성자는 클래스의 인스턴스를 반환하는 대신, 새로운 객체를 반환합니다. 이 새로운 객체는 생성자를 호출할 때마다 항상 같은 객체가 아니라면, 같은 인스턴스를 반환할 수 있습니다.
다음은 factory 생성자를 사용하여 캐시를 구현하는 간단한 예제입니다.
class Cache {
static final Map<String, Cache> _cache = {};
final String cacheKey;
factory Cache(String key) {
if (_cache.containsKey(key)) {
return _cache[key];
} else {
final cache = Cache._internal(key);
_cache[key] = cache;
return cache;
}
}
Cache._internal(this.cacheKey);
}
위의 코드에서 Cache 클래스는 _cache라는 정적 변수를 가지며, factory 생성자는 _cache를 사용하여 캐시 된 인스턴스를 반환합니다. 생성자가 호출될 때마다, _cache에서 이미 해당 키(key)에 대한 인스턴스가 존재하는지 확인하고, 존재하는 경우 해당 인스턴스를 반환합니다. 존재하지 않는 경우, 새로운 인스턴스를 생성하고 _cache에 추가한 다음 반환합니다.
이러한 방법으로 factory 생성자는 Flutter 앱에서 자주 사용되며, 특히 많은 메모리를 사용하는 객체를 생성할 때 유용합니다.
반응형
'프로그램 개발해서 돈벌기 > flutter' 카테고리의 다른 글
[flutter] 기초 문법 중 특이한 구문 (?, ?., !, ??, ??=) (0) | 2023.05.08 |
---|---|
[flutter] class에서 LinkedListEntry를 상속 받은 경우에 대한 의미와 예제 코드 (0) | 2023.05.03 |
[flutter] A value of type 'Null' can't be returned from the method '_takePicture' because it has a return type of 'Future<String>' 에러 발생 (0) | 2023.05.02 |
[flutter] list 내 expand 함수 의미와 사용 예제 (0) | 2023.05.02 |
[flutter] class에서 with는? (0) | 2023.04.25 |
댓글