❓어댑터 패턴? 어댑터 패턴은 구조 패턴으로, 다른 말로 래퍼(Wrapper) 패턴이라고도 합니다. 연관성 없는 2개의 객체를 묶어서 인터페이스를 만들어 주는 패턴을 말하는데요, 이를 통해 서로 연관 없는 두 객체의 호환성을 이루어줄 수 있습니다! ❓어댑터 패턴의 종류 어댑터 패턴은 두 가지 방식이 있는데요, 클래스를 이용한 클래스 어댑터 패턴(Class Adapter Pattern), 그리고 객체를 이용한 객체 어댑터 패턴(Object Adapter Pattern)이 있습니다! ❗클래스 어댑터 패턴 클래스의 상속을 이용한 어댑터 패턴입니다. // 기존에 사용하던 클래스 class OldDate { constructor(dateString) { this.dateString = dateString; } g..
❓프로토타입 패턴이 무엇일까? 프로토타입 패턴은 생성패턴의 하나로, 프로토타입(원형)을 사용하여 객체를 생성하는 것을 말합니다. ❓프로토타입(원형)을 사용하는 이유? 프로토타입에서는 기존에 있는 객체가 있다면, 새로 생성하는 것이 아닌, 기존의 객체를 복제하여 사용합니다. 이는 새로 객체를 만드는 것 보다 자원을 절약할 수 있습니다. 즉 인스턴스화 과정을 생략함으로써 생성 로직에 소모되는 시간과 자원을 절약할 수 있다는 것! 이러한 특성 때문에 대량 생산을 할 때 적은 자원으로 많은 객체를 만들 수 있다는 장점이 있습니다! ❓자바스크립트의 예시? 사실 자바스크립트의 예시라고 할 것이 없는 것이, 프로토타입은 자바스크립트에 내장 되어 있는, JS의 특징이라 할 수 있습니다. const Person = (f..
❓빌더 패턴이 무엇일까? 빌더 패턴은 복합 객체 생성 과정을 별도의 독립된 클래스로 관리하는 패턴을 말합니다. 쉽게 말해 build라는 클래스 하나로 생성을 모두 관리할 수 있다는 건데요. 그렇다면 복합 객체, 복잡한 객체란 무엇을 뜻하는 것일까요? ❓복합 객체? 복합 객체는 내부적으로 다른 클래스의 객체를 포함하고 있는 것을 말합니다. // Door 클래스 정의 class Door { operate(action) { console.log(`The door is ${action}.`); } } // Car 클래스 정의 class Car { constructor(model, year) { this.model = model; this.year = year; this.doors = []; } addDoor(c..
❓추상 팩토리 패턴? 추상 팩토리 패턴은, 팩토리 메서드 패턴에서 한 층 더 나아가, 팩토리 그룹, 객체 패밀리 (object families)를 만들어 확장해 나가는 패턴을 말합니다. 팩토리 매서드에 대한 글은 아래를 참고해주세요! [디자인 패턴] 팩토리 메서드(Factory Method) 패턴 ❓팩토리 메서드 패턴? 팩토리 메서드 패턴은 팩토리 패턴에서 확장된 패턴이라 생각하시면 됩니다. 기존 팩토리 패턴은 객체의 생성을 처리하는 동작을 클래스 혹은 메서드로 분리하는 것을 lurgi.tistory.com 제가 이해한 바로는, 쉽게 말해서 여러개의 추상 팩토리를 가진 그룹을 만드는 패턴을 추상 팩토리라 할 수 있을 것 같습니다. ❓추상 팩토리 패턴의 예 다이어그램을 통해 알아봅시다. 다양한 추상 팩토리..
❓팩토리 메서드 패턴? 팩토리 메서드 패턴은 팩토리 패턴에서 확장된 패턴이라 생각하시면 됩니다. 기존 팩토리 패턴은 객체의 생성을 처리하는 동작을 클래스 혹은 메서드로 분리하는 것을 말하는데요, 여기서 한 발 더 나아가 팩토리 메서드 패턴은 ‘서브 클래스’ 에서 구현하는 패턴을 말합니다. 팩토리 패턴은 여기서 자세하게 보실 수 있습니다! [디자인 패턴] 팩토리(Factory) 패턴 ❓팩토리 패턴 팩토리 패턴은 생성 패턴중에서도 가장 기본이 되는 패턴이라고 합니다. 객체 생성 처리를 위임하여 객체 지향의 문제점을 해결할 수 있다고 하네요. 객체 생성을 담당하는 동작 lurgi.tistory.com ❗팩토리 메서드의 예시 (JS) // 추상 동물 클래스 (인터페이스로 간주) class Animal { mak..
❓싱글턴 패턴? 싱글턴 패턴은 클래스의 인스턴스를 딱 하나로 고정시켜 놓도록 보장하는 패턴을 말합니다. 특정 클래스의 인스턴스가 오직 하나만 생성되기 때문에, 어디서든 그 인스턴스에 접근하더라도 하나의 인스턴스가 목적지가 됩니다. 싱글턴 패턴은 리소스 공유나 설정관리, 캐싱, 로그 새성과 같은 전역 상태를 가져야 하는 상황에서 사용되는 패턴입니다. 단일 인스턴스를 공유함으로써 리소스 낭비를 줄일 수 있고 일관된 상태를 유지할 수 있다는 것이죠! ❗싱글턴 패턴의 예시 (JS) 싱글턴 패턴의 예시를 자바스크립트 코드 보여드리겠습니다. class Singleton { constructor() { if (!Singleton.instance) { Singleton.instance = this; } return S..