디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것을 의미
소프트웨어 디자인 과정 중에서 자주 발생하는 문제들을 어떻게 해결할 것인지에 대한 해결 방안
디자인 패턴은 객체 지향 4대 특성 과 설계 원칙을 기반으로 구현
하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴,
하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만, 하나의 인스턴스를 만들어 이를 기반으로 로직 작성
고정된 메모리 영역을 얻으면서 한번의 생성으로 인스턴스를 생성해서 사용하기 때문에 메모리 낭비를 방지
싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다. ex) DBCP
우선 싱글톤 클래스를 구현해보았다.
class Singleton {
// 만약 클래스에 변수를 담고 싶으면
String _data = "";
Singleton._internal();
static final Singleton _instance = Singleton._internal();
factory Singleton() => _instance;
set(String newData) => _data = newData;
String get data => _data;
}
싱글톤 클래스를 통해 인스턴스 생성하여 확인
void main() {
Singleton singleton1 = Singleton();
print(singleton1._data);
singleton1.set("안녕하세요");
print(singleton1._data);
Singleton singleton2 = Singleton();
print(singleton2._data);
}
싱글톤 객체를 두개 생성해 보았고, 생성된 두 객체의 내부 변수를 불러왔을 때 하나의 인스턴스의 내용을 공유하는 것을 확인할 수 있었다.
다음에는 Dio와 Firebase를 싱글톤 패턴으로 구현해보는것을 목표로 공부해봐야겟다.