Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-17 00:00
관리 메뉴

nomad-programmer

[Programming/Dart] 언어로 구현하는 싱글턴 패턴 (Singleton Pattern) 본문

Programming/Dart

[Programming/Dart] 언어로 구현하는 싱글턴 패턴 (Singleton Pattern)

scii 2020. 10. 13. 19:53

싱글턴 패턴이란 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등의 경우, 인스턴스를 여러 개 만들게 되면 자원을 낭비하게 되거나 버그를 발생시킬 수 있으므로 오직 하나만 생성하고 그 인스턴스를 사용하도록 하는 것이 이 패턴의 목적이다.

하나의 인스턴스만을 유지하기 위해 인스턴스 생성에 특별한 제악을 걸어둬야 한다. new를 실행할 수 없도록 생성자에 private 접근 제어자를 지정하고, 유일한 단일 객체를 반환할 수 있도록 정적 메소드를 지원해야 한다. 또한 유일한 단일 객체를 참조할 정적 참조 변수가 필요하다.

Dart 언어로 싱글턴 패턴을 구현해보자.

class Singleton {
  final int _x, _y;

  // 다른곳에서 호출할 수 없도록 private 생성자로 만듦.
  Singleton._(this._x, this._y);

  // 정적 변수를 만듦.
  static final Singleton _instance = new Singleton._(5, 10);

  factory Singleton() {
    return _instance;
  }
}

void main(){
  Singleton s1 = new Singleton();
  Singleton s2 = new Singleton();

  print(identical(s1, s2));
  print(s1 == s2);
}

/* 결과 

true
true

*/

만약, factory 키워드가 무엇인지 모른다면 아래의 페이지를 참고하길 바란다.

2020/10/13 - [Programming/Dart] - [Dart] 다양한 Contructor (생성자)

 

[Dart] 다양한 Contructor (생성자)

이름 있는 생성자 (Named Constructor) 이름 있는 생성자는 말 그대로 생성자에 이름을 부여한 것이다. 한 클래스 내에 많은 생성자를 생성하거나 생성자를 명확히 하기 위해서 사용할 수 있다. class ��

nomad-programmer.tistory.com

Comments