Backend/Design Pattern
-
[Design Pattern] Singleton Pattern, Nest.jsBackend/Design Pattern 2024. 7. 18. 18:32
Singleton Pattern이란? 싱글톤 패턴은 특정 클래스의 인스턴스가 하나만 생성되고, 이를 통해 모든 클라이언트가 동일한 인스턴스를 공유하도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수처럼 어디서든 접근할 수 있는 객체를 제공하며, 이를 통해 리소스를 절약하고 데이터 일관성을 유지할 수 있습니다. 어떤 문제가 있을까? 1. 구현 코드가 많이 들어갑니다.인스턴스 생성 여부를 제어하고 멀티쓰레드 환경에서 동기화 처리 등을 해야 하므로 구현이 복잡해집니다. 2. DIP(Dependency Inversion Principle, 의존성 역전 원칙) 위반의존성 역전 원칙은 고수준 모듈과 저수준 모듈이 추상화된 인터페이스에 의존해야 한다고 하지만, 싱글톤 패턴은 클라이언트 코드가 구체 클래스에 직접 ..
-
[Design Pattern] 전략 패턴(Strategy pattern) in JavascriptBackend/Design Pattern 2024. 7. 16. 14:46
작은 게임을 하나 제작하려고 하는데 처음 기획이 아래와 같다고 가정합니다.챔피언은 이름, 체력, 공격타입(AD, AP)을 가집니다.챔피언의 역할군에는 전사와 마법사가 있습니다.따라서 아래 코드처럼 챔피언 추상 클래스를 정의하고 상속받아 전사와 마법사 챔피언 클래스를 생성합니다.// 챔피언 이름enum Championname { BRIAR = 'Briar', VAX = 'Vax',}// 공격 종류enum AttackType { AD = 'AD', AP = 'AP',}abstract class Champion { constructor( public readonly championInfo: { name: Championname; health: number; attack..