본문 바로가기

Design Pattern14

[Design Pattern] (Creational) 추상 팩토리 패턴(Abstract Factory Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Creational Design Pattern] 추상 팩토리 패턴(Abstract Factory Pattern) 추상 팩토리 패턴은 구체적인 클래스에 의존하지 않고, 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴이다. 관련성 있는 여러 종류의 객체를 일관된 방식으로 생성할 때 유용하다. 팩토리 패턴을 확장한 패턴이라고 할 수 있다. 객체를 사용하는 코드에서 객체의 생성을 떼어.. 2023. 3. 28.
[Design Pattern] (Behavioral) 메멘토 패턴(Memento Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Behavioral Design Pattern] 메멘토 패턴(Memento Pattern) 1) 개요 메맨토 패턴은 객체의 상태 정보를 가지는 클래스를 따로 생성하여, 객체의 상태를 저장하거나 이전 상태로 복원할 수 있게 해주는 패턴입니다. 메멘토 패턴은 바둑, 오목, 체스 등의 보드게임 등에서 '무르기' 기능을 구현할 때 사용되기도 합니다. 단, 이전 상태의 객체를 저장하기 위한 Originator가 .. 2023. 3. 27.
[Design Pattern] (Behavioral) 템플릿 메서드 패턴(Template Method Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Behavioral Design Pattern] 템플릿 메서드 패턴(Template Method Pattern) GOF의 디자인 패턴에서 템플릿 메소드 패턴을 다음과 같이 정의하고 있다. 객체의 연산에는 알고리즘의 뼈대만을 정의하고, 알고리즘 각 단계에서 수행할 구체적 처리는 서브클래스 쪽으로 미룬다. 알고리즘의 구조 자체는 그대로 놔둔 채 알고리즘 각 단계처리를 서브클래스에서 재정의할 수 있게 하는 패.. 2023. 3. 27.
[Design Pattern] (Behavioral) 전략 패턴(Strategy Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Behavioral Design Pattern] 전략 패턴(Strategy Pattern) GOF의 디자인 패턴에서 전략 패턴을 다음과 같이 정의하고 있다. 동일 계열의 알고리즘들을 정의하고, 각 알고리즘을 캡슐화하며, 이 알고리즘들을 해당 계열 안에서 상호교체가 가능하도록 만든다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있게 한다. 하나의 클래스가 많은 행동들.. 2023. 3. 27.
[Design Pattern] (Behavioral) 관찰자 패턴(Observer Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Behavioral Design Pattern] 관찰자 패턴(Observer Pattern) 클라이언트 측 자바스크립트 프로그래밍에서 널리 사용되는 패턴이다. subscriber / publisher 패턴이라고도 한다. 이 패턴의 주요 목적은 객체간의 결합도를 낮추는 것이다. Observer 패턴의 예 mouseover, keypress 와 같은 브라우저 이벤트 2023. 3. 27.
[Design Pattern] (Behavioral) 반복자 패턴(Iterator Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Behavioral Design Pattern] 반복자 패턴(Iterator Pattern) 객체의 내부구조가 복잡하더라도 개별 속성에 쉽게 접근하기 위한 패턴 var element; while (element = agg.next()) { // ... console.log(element); } 위의 agg 객체 구현방법은 아래와 같다. var agg = (function() { var index = 0,.. 2023. 3. 27.
[Design Pattern] (Structural) 프록시 패턴(Proxy Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Structural Design Pattern] 프록시 패턴(Proxy Pattern) Lazy Initialization (게으른 초기화) 로 어플리케이션의 부하를 줄여준다. var $ = function(id) { return document.getElementById(id); } $('vids').onclick = function(e) { var src, id; e = e || window.even.. 2023. 3. 27.
[Design Pattern] (Structural) 데코레이터 패턴(Decorator Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Structural Design Pattern] 데코레이터 패턴(Decorator Pattern) 런타임시 객체에 동적으로 부가기능을 추가할 수 있는 패턴 Decorator 패턴의 예제는 아래와 같다. var sale = new Sale(100); sale = sale.decorate('fedtax'); sale = sale.decorate('quebec'); sale = sale.decorate('mo.. 2023. 3. 27.
[Design Pattern] (Structural) 모듈 패턴(Module Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Structural Design Pattern] 모듈 패턴(Module Pattern) 모듈 패턴은 특정 구성요소를 다른 구성요소와 독립적으로 유지하는 패턴을 말한다. 장점: 재사용성을 높히기 위한 코드를 작성할 때 유용하다 단점: 코드가 길어지고 파일 크기도 늘어난다 Module 패턴 JavaScript에서의 모듈은 특정 구성요소를 다른 구성요소와 독립적으로 유지하는데 가장 널리 사용되는 디자인 패턴입.. 2023. 3. 27.
[Design Pattern] (Creational) 프로토타입 패턴(Prototype Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Creational Design Pattern] 프로토타입 패턴(Prototype Pattern) prototype 디자인 패턴은 다른 객체의 프로토 타입 역할을하는 객체를 만드는 프로토 타입 상속을 기반으로한다고 생각할 수 있다.프로토타입 패턴은 객체를 효율적으로 생성하는 방식으로 객체의 템플릿을 기반으로 새로운 객체를 만들 수 있다. 프로토타입 개체 자체는 생성자가 만드는 각 개체의 청사진으로 효과적.. 2023. 3. 26.