Flutter Factory Singleton Pattern

김재헌·2022년 6월 30일

Flutter

목록 보기
1/2

싱글톤 패턴

객체의 인스턴스가 오직 하나만 생성되는 것,
즉 여러개의 생성자를 호출 하더라도 실제로 생성되는 인스턴스는 하나이다

싱글톤 패턴 만들기

code

class Singleton {
  Singleton._privateConstructor();
  static final Singleton _instance = Singleton._privateConstructor();

  factory Singleton() {
    return _instance;
  }
}

static
변수 또는 메서드가 인스턴스에 귀속되는 것이 아닌 클래스에 귀속되는 것

factroy
Dart에서 제공하는 생성자
반환값이 있어 새로운 인스턴스의 생성이 가능

코드 파헤치기

Singleton._privateConstructor();
static final Singleton _instance = Singleton._privateConstructor();

Singleton._privateConstructor();

생성자를 선언
빈 생성자를 선언해주는 이유는 Dart에서 생성자가 없을 경우 자동으로 Public한 생성자를 만듬
이를 막기 위해 빈 생성자를 선언

static final Singleton _instance = Singleton._privateConstructor();

생성자를 호출해 인스턴스를 변수에 할당


class Singleton {
  // Private한 생성자 생성
  Singleton._privateConstructor();
  // 생성자를 호출하고 반환된 Singleton 인스턴스를 _instance 변수에 할당
  static final Singleton _instance = Singleton._privateConstructor();
// Singleton() 호출시에 _instance 변수를 반환
  factory Singleton() {
    return _instance;
  }
}

결과적으로 Singleton();을 호출 할 때 마다 factory 생성자에서 같은 인스턴스가 반환되는 패턴

참고: https://medium.com/flutter-seoul/dart%EC%97%90%EC%84%9C-singleton-pattern%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-2312616bbb7e

profile
개발자되려고 맥북샀다

0개의 댓글