본문 바로가기
프로그램 개발해서 돈벌기/flutter

[flutter] factory 정의 및 사용법 간략 설명

by ubmuhan 2023. 5. 3.
반응형

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 앱에서 자주 사용되며, 특히 많은 메모리를 사용하는 객체를 생성할 때 유용합니다.

 

 

 

반응형

댓글