반응형
싱글톤(Singleton) 패턴과 팩토리(Factory) 패턴
싱글톤 패턴과 팩토리 패턴은 소프트웨어 디자인 패턴 중에서 자주 사용되는 패턴입니다. 이번 챕터에서는 두 패턴의 개념과 각각의 활용 방법에 대해 알아보겠습니다.
1. 싱글톤(Singleton) 패턴
싱글톤 패턴은 애플리케이션 전체에서 단 하나의 인스턴스를 생성하고 이를 공유하여 사용하는 디자인 패턴입니다. 주로 공유된 자원이나 설정, 로깅 등의 용도로 사용됩니다.
핵심 내용:
- 인스턴스 생성을 단 한 번만 수행하고 그 이후에는 기존 인스턴스를 반환하는 방식으로 구현됩니다.
- 전역 변수를 사용하거나 정적 메소드를 통해 인스턴스에 접근할 수 있습니다.
예시:
class Singleton {
constructor() {
if (!Singleton.instance) {
Singleton.instance = this;
}
return Singleton.instance;
}
}
const instance1 = new Singleton();
const instance2 = new Singleton();
console.log(instance1 === instance2); // true
2. 팩토리(Factory) 패턴
팩토리 패턴은 객체 생성을 캡슐화하여 클라이언트가 직접 객체를 생성하는 것을 방지하고 객체를 생성하는 인터페이스를 제공하는 디자인 패턴입니다. 다양한 객체를 생성하고 이를 통일된 방식으로 제어할 때 유용합니다.
핵심 내용:
- 클라이언트는 팩토리에게 객체 생성을 요청하고 팩토리는 요청에 맞는 객체를 생성하여 반환합니다.
- 팩토리는 객체 생성 로직을 캡슐화하여 유연성과 확장성을 제공합니다.
예시:
class ProductFactory {
createProduct(type) {
switch (type) {
case 'A':
return new ProductA();
case 'B':
return new ProductB();
default:
throw new Error('Invalid product type.');
}
}
}
class ProductA {
// ProductA 클래스 구현
}
class ProductB {
// ProductB 클래스 구현
}
const factory = new ProductFactory();
const productA = factory.createProduct('A');
const productB = factory.createProduct('B');
싱글톤 패턴과 팩토리 패턴은 각각 인스턴스 생성과 객체 생성을 다루는데 유용한 디자인 패턴입니다. 적절한 상황에서 사용하여 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
반응형
'javascript pure > javascript 코어 개념' 카테고리의 다른 글
23. 함수형 프로그래밍(Functional Programming) - 2 (2) | 2024.02.17 |
---|---|
22. 함수형 프로그래밍(Functional Programming) - 1 (0) | 2024.02.16 |
21. 디자인 패턴(Design Patterns) - 3 (0) | 2024.02.16 |
20. 디자인 패턴(Design Patterns) - 2 (0) | 2024.02.16 |
18. 메모리 관리(Memory Management) - 3 (0) | 2024.02.16 |
17. 메모리 관리(Memory Management) - 2 (0) | 2024.02.16 |
16. 메모리 관리(Memory Management) - 1 (0) | 2024.02.16 |
15. 실행 컨텍스트(Execution Context)와 스코프(Scope) - 3 (0) | 2024.02.16 |