본문 바로가기

Design Pattern17

[Design Pattern] (Creational) 빌더 패턴(Builder Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Creational Design Pattern] 빌더 패턴(Builder Pattern) 빌더라는 이름처럼 객체를 생성하는 것에 관한 디자인 패턴이다. 백과사전에 의하면 빌더 패턴(Builder pattern)이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다. 말이 어려운데, 객체를 만들어 사용하다 보면 간혹 객체 생성자가 너무 .. 2023. 3. 29.
[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) 상태 패턴(State Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Behavioral Design Pattern] 상태 패턴(State Pattern) 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) 중재자 패턴(Mediator Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Behavioral Design Pattern] 중재자 패턴(Mediator Pattern) 객체 간의 영향도 (결합도)가 높은 상태에서는 어플리케이션의 리팩토링이 예기치 않은 결과를 나을 수 있다. 따라서, 결합도를 낮추기 위해 객체의 상태가 변경되면 Mediator 에게 먼저 전달하고 이름 Mediator 가 다른 객체에 전달하는 방식의 코딩이 가능하다. 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.