프로그래밍에서는 다양한 디자인 패턴이 있다. 여기서 디자인 패턴이란
프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 한 규약 이다.
그 중 오늘 올릴 패턴은 싱글톤 패턴이다.
싱글톤 패턴 은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다.
주로 활용하는 곳으로는 데이터베이스 연결 모듈에 사용한다.
하나의 인스턴스를 만들어 놓고 해당 인스턴스들을 다른 모듈들이 공유하며 사용하기에 인스턴스를 생성할 시 드는 비용이 줄어들 수 있다.
의존성이 높아 진다.
라고 간단하게 싱글톤 패턴을 정의 할 수 있을 것 같다.
js에서는 리터럴 { } 또는 new Object로 객체를 생성하게 되면 다른 어떤 객체와도 같지 않기 때문에 이 자체로 싱글톤 패턴을 구현 할 수 있다. => 아마 서로 다른 메모리를 갖기 때문으로 추정
const obj = {
a: 27
}
const obj2 = {
a: 27
}
console.log(obj === obj2)
// false
위에 코드에서 볼 수 있듯이 서로 다른 인스턴스를 가지고 있다.
class Singleton {
constructor() {
if(!Singleton.instance) {
Singleton.instance = this
}
return Singleton.instance
}
getInstance() {
return this.instance
}
}
const a = new Singleton()
const b = new Singleton()
console.log(a === b)
// true
위에 코드는 Singleton.instance 라는 하나의 인스턴스를 가지는 Singleton 클래스를 구현한 코드이다.
이를 통해 알 수 있는 것은 하나의 인스턴스를 구성한다는 것이다.
인스턴스 : 클래스의 현재 생성된 오브젝트를 가르킴.