-
[Dart/Flutter] Factory 생성자에 대하여개발/Flutter 2023. 1. 10. 13:34
참고 - https://dart.dev/guides/language/language-tour#factory-constructors
Factory constructors
Use the factory keyword when implementing a constructor that doesn’t always create a new instance of
its class. For example, a factory constructor might return an instance from a cache, or it might return an instance of a subtype.Dart 가이드에서는 위와 같이 설명하고 있습니다.
항상 새로운 인스턴스를 생성하지 않는 생성자를 구현할때 factory 키워드를 사용하라고 합니다.
캐시에서 인스턴스를 반환하거나 그 하위 인스턴스를 반환할 수 있습니다.
싱글톤 패턴을 따르고 있습니다.
-예제코드-
class Logger { final String name; bool mute = false; static final Map<String, Logger> _cache = <String, Logger>{}; factory Logger(String name) { return _cache.putIfAbsent(name, () => Logger._internal(name)); } factory Logger.fromJson(Map<String, Object> json) { return Logger(json['name'].toString()); } Logger._internal(this.name); void log(String msg) { if (!mute) print(msg); } }
위 예제 에서는 _cache에 이전에 생성된 인스턴스가 있다면 기존의 인스턴스를 반환 하고 없다면
_internal 생성하여 반환 하도록 합니다.
'개발 > Flutter' 카테고리의 다른 글
[Flutter] Container Widget 에 대하여 .. (0) 2023.01.13 [Flutter] GoogleFonts 사용하기 (폰트 변경 하기) (0) 2023.01.12 [Flutter] Wrap widget 에 대하여... (0) 2023.01.11 [Flutter] freezed 사용하기 ! (Code Generator) (0) 2023.01.10 [Flutter] Row & Column Widgets (0) 2022.10.27