본문 바로가기
SW

GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 1장 서론(1.7~1.8)

by 라꾸스떼(YR) 2020. 4. 7.
반응형

[1.7 디자인 패턴을 고르는 방법]

-패턴이 어떻게 문제를 해결하는지 파악한다.

-패턴의 의도 부분을 본다.

-패턴들 간의 관련성을 파악한다.

-비슷한 목적의 패턴들을 모아서 공부한다.

-재설계의 원인을 파악한다.

-설계에서 가변성을 가져야 하는 부분이 무엇인지 파악한다.

 

[1.8 디자인 패턴 사용 방법]

1.전체를 훑는 기분으로 끝까지 한 번 읽는다.

2.다시 처음으로 돌아가 ‘구조(Structure)’, ‘참여자(Participant)’, ‘협력 방법(Collaboration)’ 절을 다시 공부한다.

3.더 확실하게 이해하기 위해서 예제 코드 부분을 살핀다.

4.응용프로그램에 의미 있는 이름으로 패턴의 참여자 이름을 결정한다.

5.클래스를 정의한다.

6.패턴에 정의한 연산에 대해서 응용프로그램에 적합한 이름을 정의한다.

7.패턴에 정의한 책임과 협력 방법을 수행하도록 연산을 구현한다.

 

<생성>

- 추상 팩토리 : 제품 객체군

-빌더 : 복합 객체 생성 방법

-팩토리 메서드 : 인스턴스화될 객체의 서브클래스

-원형 : 인스턴스화될 객체 클래스

-단일체 : 클래스의 인스턴스가 하나일 때

 

<구조>

- 적응자 : 객체에 대한 인터페이스

-가교 : 객체 구현

-복합체 : 객체의 합성과 구조

-장식자 : 서브클래싱 없이 객체의 책임성

-퍼사드 : 서브시스템에 대한 인터페이스

-플라이급 : 객체의 저장 비용

-프록시 : 객체 접근 방법

 

<행동>

- 책임 연쇄 : 요청을 처리하는 객체

-명령 : 요청의 처리 시점과 처리 방법

-해석자 : 언어의 문법과 해석 방법

-반복자 : 집합 객체 요소들의 접근 방법 및 순회 방법

-중재자 : 어떤 객체들이 어떻게 상호작용하는지

-메멘토 : 언제 어떤 정보를 객체의 외부에 저장하는지

-감시자 : 다른 객체에 종속적인 객체 수, 종속적인 객체들의 상태 변경 방법

-상태 : 객체의 상태

-전략 : 알고리즘

-템플릿 메서드 : 알고리즘의 단계

-방문자 : 클래스의 변경 없이 객체에 적용할 수 있는 연산

 

디자인 패턴은 아무렇게나 적용되어서는 안 된다. 종종 디자인 패턴은 간접 접근(위임과 같은 기법)을 도입함으로써 융통성과 다양성을 갖지만, 설계를 복잡하게 만들고 성능을 떨어뜨리는 결과를 가져오기도 한다. 어떤 패턴을 썼을 때 얻는 부분과 잃는 부분이 무엇인지 평가할 때는 ‘결과’ 절을 잘 읽어보자.

반응형

댓글