디자인패턴

빌더 패턴(Builder Pattern)이란 빌더 패턴은 복잡한 객체의 생성 과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만드는 생성 패턴입니다. 주요 특징으로객체 생성의 복잡성을 캡슐화객체 생성 단계를 유연하게 처리동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있음빌더 패턴(Builder Pattern) 코드1) 기본 추상 그림판 클래스 export default abstract class Grimpan { protected constructor(canvas: HTMLElement | null) { if (!canvas || !(canvas instanceof HTMLCanvasElement)) { throw new Error('canvas 엘리먼트를 입력하세요'); ..
추상 팩토리 패턴(Abstract Factory Pattern)이란추상 팩토리 패턴이란 서로 관련있는 여러 객체를 일관된 방식으로 생성하기 위한 인터페이스를 제공하는 생성 패턴입니다. 구체적인 클래스를 지정하지 않고도 서로 관련된 객체들의 그룹을 생성할 수 있게 합니다. 주로 제품군의 일관성 유지가 필요할 때, 관련된 객체들이 함께 사용되어야 할 때, 시스템이 여러 제품군 중 하나를 사용해야 할 때, 구체적인 클래스를 분리하여 client 코드와 결합도를 낮추고 싶을 때 사용되는 패턴입니다.추상 팩토리 패턴 코드1) 추상 제품들의 정의export default abstract class Grimpan { protected constructor(canvas: HTMLElement | null) { ..
팩토리 메소드 패턴이란 객체 생성을 위한 인터페이스를 정의하지만, 인스턴스 생성은 서브클래스가 담당하는 패턴을 말합니다.부모 클래스에서 객체의 생성 인터페이스를 제공하고, 자식 클래스에서 실제 생성될 객체의 타입을 결정하게 됩니다.팩토리 메소드 패턴1) 추상 제품 (Abstract Product) export default abstract class Grimpan { protected constructor(canvas: HTMLElement | null) { if (!canvas || !(canvas instanceof HTMLCanvasElement)) { throw new Error('canvas 엘리멘트를 입력하세요.'); } } abstract initialize(): v..
심플 팩토리 패턴(Simple Factory Pattern) 심플 팩토리 패턴은 객체 생성을 캡슐화하는 가장 기본적인 디자인 패턴입니다. function grimpanFactory(type: string) { if (type === 'ie') { return IEGrimpan.getInstance(); } else if (type === 'chrome') { return ChromeGrimpan.getInstance(); } else { throw new Error('일치하는 타입이 없습니다.') }}Factory 메소드 (grimpanFactory): 객체 생성 로직을 담당생성될 제품들 (IEGrimpan, ChromeGrimpan): 공통 인터페이스나 부모 클래스를 공유해당 패..
SOLID 원칙이란 SOLID 원칙은 객체 지향 프로그래밍에서 지켜야 할 5가지 핵심 원칙을 의미합니다. 이 원칙들을 따르면 유지보수가 쉽고, 유연하며, 확장이 용이한 소프트웨어를 만들 수 있습니다.1) 단일 책임 원칙 (Single Responsibility Principle, SRP)단일 책임 원칙의 핵심은 "한 객체는 하나의 책임만 가져야 한다" 여기서 말하는 책임은 곧 변경의 이유를 의미 합니다.// 나쁜 예: 여러 책임이 혼재class Order { calculateTotalPrice() { /* 가격 계산 */ } saveToDatabase() { /* DB 저장 */ } sendConfirmationEmail() { /* 이메일 발송 */ }}// 좋은 예: 책임 분리clas..
싱글톤 패턴싱글톤 패턴은 클래스의 인스턴스가 프로그램 내에서 단 하나만 생성되도록 보장하는 디자인 패턴입니다. 즉, 어플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 인스턴스를 만들어 사용하는 디자인패턴입니다.class Grimpan { private static instance: Grimpan; private constructor(canvas: HTMLElement | null) { if (!canvas || !(canvas instanceof HTMLCanvasElement)) { throw new Error('canvas 엘리멘트를 입력하세요.'); } } initialize() {} initializeMenu() {} s..
프론이
'디자인패턴' 카테고리의 글 목록