CS 4

[디자인 패턴] 옵서버 패턴 (Observer Pattern) / 자바스크립트, 프록시 객체

옵서버 패턴 (Observer Pattern) 관찰자가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 객체에 상속되어 있는 다른 객체들(옵서버)에게 전달하는 패턴 이벤트 기반 시스템 / MVC 패턴에 사용됨 주로 분산된 시스템 간에 이벤트를 생성 / 발행 (Publish)하고, 이를 수신(Subscribe)해야 할 때 사용 관찰자 : 객체의 상태 변화를 감지하는 관찰자 옵서버 : 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들 예제 옵서버 생성 // 옵서버 클래스 (base) class Observer { constructor(user) { this.user = user.name; } notify(message) { console.log(`User..

STUDY/CS 2023.01.10

[디자인 패턴] 전략 패턴 (Strategy Pattern) / 자바스크립트

전략 패턴 (Strategy Pattern) 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의하는 패턴 하나의 클래스가 많은 행동들을 정의하고, 클래스 연산 안에서 복잡한 다중 조건문의 모습을 취하는 경우 사용 독립적으로 원하는 알고리즘 선택하여 사용 클라이언트에 영향 없이 알고리즘 변경 예제 // Strategy Interface class MovableStrategy { constructor(strategy) { this.way = strategy.way; } move() { console.log(`${this.way}를 통해 이동합니다.`) } } // Concrete Strategies class RailStrategy extends MovableStrategy { con..

STUDY/CS 2023.01.09

[디자인 패턴] 팩토리 패턴 (Factory Pattern) - 팩토리 메소드, 추상 팩토리 / 자바스크립트

팩토리 패턴 (Factory Pattern) 객체 생성 부분을 분리하여 추상화한 패턴 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위클래스에서 객체 생성에 관한 구체적인 내용 결정 객체들 간 의존관계 분리하기 위함 팩토리 메소드 패턴, 추상 팩토리 패턴 장점 상 / 하위 클래스를 분리하여 결합도를 감소시키고 유지 보수성을 증가시킨다. 유연성 및 확장성 증가 단점 객체 생성 시 새로운 클래스 필요 # 팩토리 메소드 패턴 (Factory Method Pattern) 객체 생성 처리를 서브 클래스로 분리하여 처리하도록 캡슐화하는 패턴 추상화를 통해 상위 클래스를 제공하고, 상세한 구현은 하위 클래스로 위임 비슷한 객체를 반복적으로 생성새야 하는 경우 사용 예제 class Coffe..

STUDY/CS 2023.01.08

[디자인 패턴] 싱글톤 패턴 (Singleton Pattern) / 자바스크립트

싱글톤 패턴 (Singleton Pattern) 전체 시스템에서 클래스에 대해 오직 하나의 인스턴스만 가지도록 하는 객체 생성 패턴 하나의 객체를 생성하면 생성된 객체를 어디서든 참조 가능 인스턴스에 집적적인 접근 차단 예제 1 : 즉시 실행 함수 (IIFE) + 클로저 (Closure) 즉시 실행 함수 : 함수를 정의하자마자 바로 호출되는 함수 (초기화코드, 라이브러리 내 전역 변수의 충돌방지 등에 사용) let Singleton = (function () { let instance; // instance 비공개 변수 function init() { // 비공개 메서드 return { publicMethod: function () { // public 메서드 return {name: 'yejin', a..

STUDY/CS 2023.01.07