Ted's Codding study

디자인 패턴이란? 본문

TypeScript

디자인 패턴이란?

Ted93 2024. 7. 1. 08:14

소프트웨어 디자인에서 자주 발생하는 문제들을 해결하기 위한 잘 정립된 해결책
패턴들은 개발 과정을 보다 효율적으로 생성하게 함
코드의 재사용성, 유지보수성, 커뮤니케이션의 효율성을 증가

자주 사용되는 디자인 패턴

1. 싱글톤 패턴(Singleton Pattern)

목적

  • 클래스의 인스턴스가 하나만 생성
  • 어디서든 그 인스턴스에 접근할 수 있도록 하는 패턴
  • 사용 예: 데이터베이스 연결, 로거 설정 등
class Singleton {
  private static instance: Singleton;

  private constructor() {
    // 생성자는 private으로 선언하여 외부에서 인스턴스를 생성 X
  }

  public static getInstance(): Singleton {
    if (!Singleton.instance) {
      Singleton.instance = new Singleton();
    }
    return Singleton.instance;
  }
}

 

2. 팩토리 패턴(Factory Pattern)

목적

  • 객체의 생성 과정을 캡슐화
  • 클라이언트가 구체적인 클래스에 의존하지 않도록 하는 패턴
  • 사용 예: 다양한 타입의 객체를 생성할 때
interface Product {
  operate(): void;
}

class ConcreteProductA implements Product {
  operate() {
    console.log('Product A is operating');
  }
}

class ConcreteProductB implements Product {
  operate() {
    console.log('Product B is operating');
  }
}

class Factory {
  public static createProduct(type: 'A' | 'B'): Product {
    if (type === 'A') {
      return new ConcreteProductA();
    } else {
      return new ConcreteProductB();
    }
  }
}

 

 

노션으로 보고 싶다면?

https://short-echidna-b16.notion.site/0848bbfaafab42d3a8a49b8b65c492e2?pvs=4

 

디자인 패턴이란? | Notion

목차

short-echidna-b16.notion.site