Design Patterns

Design Patterns/Structural Patterns

Structural Pattern (구조패턴)

구조 패턴에는 다음과 같이 7가지의 패턴이 있다.AdapterBridgeCompositeDecoratorFacadeFlyweightProxy구조패턴의 목적은 프로그램 내의 효율적인 구조를 형성하기 위해 클래스와 객체를 어떻게 합성하는가에 관련된 패턴이다.클래스를 기반으로 구조화 한다면(Adapter패턴) 상속을 사용하고 객체를 기반으로 구조화 할때는(나머지 모든 패턴) 객체 복합을 통해 구조화 한다.

Design Patterns/Creational Patterns

Factory Method Pattern (C++)

Factory Method Pattern (팩토리 메소드 패턴)목적객체 생성을 서브클래스에 위임하고 객체 생성단계에서 필요한 공통적인 부분을 모아 구조화 한다. 이러한 구조화 과정에서 Template Method Pattern이 사용된다. (NVI와 일맥상통)결론적으로 Template Method를 활용하여 객체를 생성하는 패턴이다. 사용 시나리오아래와 같은 기능을 만든다고 생각해보면 doc,hwp,ppt등 여러 파일을 생성해서 사용한다.파일들을 생성할 때 항상 db로 부터 정보를 가져와서 파일을 만든다.파일 생성이 완료되면 생성 완료됨을 db에 로그로 남긴다.UML상에서 각각의 파일들 hwp,doc등은 ConcreteProduct에 해당한다. 이러한 파일들을 생성해주는 각각의 팩토리는 ConcreteC..

Design Patterns/Creational Patterns

Abstract Factory Pattern (C++)

Abstract Factory Pattern (추상 팩토리 패턴)목적서로 관련성이 있거나 독립적인 여러개의 객체들(Product)을 하나의 카테고리로 묶어서 팩토리를 통해 생성한다. Product 객체들과 팩토리를 추상화하여 사용자에게 인터페이스를 제공한다. 사용 시나리오사실 UML이나 디자인패턴의 의도를 읽어보아도 언제 디자인 패턴을 사용해야할지 공감하기는 쉽지 않다. 따라서 현실에서 예를 들어 아래와 같은 기능을 만든다고 가정해보면 팝업창에 스크롤이 하나 달려있는 GUI 프로그램을 만들려고 한다. GUI는 OS(플랫폼)에 따라 다르게 생성되어야 한다. 이러한 경우 추상 팩토리 패턴을 활용하여 OS별로 GUI를 만들어 주는 팩토리와 스크롤,팝업창을 만들면 된다. 거기에 추가적으로 팩토리들을 추상화 하고..

Design Patterns/Creational Patterns

Creational Pattern (생성 패턴)

GoF의 디자인 패턴은 목적에 따라 크게 세가지로 분류를 나눌 수 있다. 생성 패턴, 구조 패턴, 행동 패턴 세가지로 나뉘며 먼저 생성 패턴에 대해서 공부를 진행해보려 한다. 생성 패턴에는 다음과 같이 5가지 패턴들이 있다.Abstract Factory BuilderFactory MethodPrototypeSingleton생성 패턴은 인스턴스를 생성할 때 유연성 있는 방법들을 제공해준다. 객체지향에서 유연성이 있다라는 말은 SOLID 원칙을 잘 따르는 구조라고 생각하면 될 것 같다. GoF의 디자인패턴에서 명시 되어있는 생성 패턴의 특징을 보면- 생성 패턴은 시스템이 어떤 구체 클래스를 사용하는 지에 대한 정보를 캡슐화.- 생성 패턴은 이들 클래스의 인스턴스들이 어떻게 만들고 어떻게 서로 맞붙는지에 대한..

자유로운 범고래
'Design Patterns' 카테고리의 글 목록 (3 Page)