일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- jupyter
- 유니티
- Python
- 플러터
- Data Structure
- c# 추상 클래스
- 포인터
- c#
- github
- c# 윈폼
- docker
- jupyter lab
- Flutter
- Houdini
- C++
- C언어 포인터
- vim
- HTML
- 깃
- Algorithm
- 다트 언어
- Unity
- c언어
- gitlab
- C# delegate
- 도커
- git
- 구조체
- c# winform
- dart 언어
Archives
- Today
- Total
nomad-programmer
[Programming/Dart] 언어로 구현하는 싱글턴 패턴 (Singleton Pattern) 본문
싱글턴 패턴이란 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등의 경우, 인스턴스를 여러 개 만들게 되면 자원을 낭비하게 되거나 버그를 발생시킬 수 있으므로 오직 하나만 생성하고 그 인스턴스를 사용하도록 하는 것이 이 패턴의 목적이다.
하나의 인스턴스만을 유지하기 위해 인스턴스 생성에 특별한 제악을 걸어둬야 한다. 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
'Programming > Dart' 카테고리의 다른 글
[Programming/Dart] 스트림 (Stream) (5) | 2020.10.16 |
---|---|
[Programming/Dart] 다양한 Contructor (생성자) (0) | 2020.10.13 |
[Programming/Dart] Stream : async*, yield (0) | 2020.10.10 |
[Programming/Dart] 비동기 프로그래밍 : futures, async, await (2) | 2020.10.10 |
[Programming/Dart] 유용한 기법 (계단식 표기법, 컬렉션 if, 컬렉션 for, null) (0) | 2020.10.06 |
Comments