💡 디자인 패턴
이란?
💡 싱글톤 패턴 (singleton pattern)
이란?
🔗 실제 사용
mongoose 모듈
장점
단점
TDD(Test Driven Development)
시 걸림돌
의존성이 높아짐
🔗 자바스크립트 싱글톤 패턴
👉 자바스크립스의 리터럴 {} 또는 new Object로 객체 생성시 다른 어떤 객체와도 같지 않으므로 이 자체만으로도 싱글톤 구현
const obj1 = {
a: 27
}
const obj2 = {
a: 27
}
console.log(obj1 === 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
🔗 자바 싱글톤 패턴
class Singleton{
private static class singleInstanceHolder{
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance(){
return singleInstanceHolder.INSTANCE;
}
}
Singleton a = Singleton.getInstance();
Singleton b = Singleton.getInstance();
// a.hashCode == b.hashCode
💡 의존성 주입(Dependency Injection)
이란?
의존성 주입자
활용하여, 메인 모듈이 '간접'적으로 하위 모듈에 의존성을 주입하는 방식
의존성 주입 원칙
👉 "상위 모듈은 하위 모듈에서 어떠한 것도 가져오지 않아야 합니다. 또한, 둘 다 추상화에 의존해야 하며, 이때 추상화는 세부 사항에 의존하지 말아야 합니다."
장점
단점