Download presentation
Presentation is loading. Please wait.
Published by재순 김 Modified 8년 전
1
4. 디자인패턴
2
학습목표 2
3
4.1 디자인패턴의 이해 크리스토퍼 알렉산더 Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. 바퀴를 다시 발명하지 마라 (Dont reinvent the wheel) 패턴은 비슷하거나 동일한 양식 또는 유형들이 반복되어 나타난다는 의미이며, 문 제와 해결책도 동일한 유형이나 양식을 통해 쉽게 찾을 수 있다. 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제 들이 발생했을 때 재사용할 수 있는 훌륭한 해결책 3
4
디자인 패턴 구조 콘텍스트 : 문제가 발생하는 여러 상황을 기술한다. 즉, 패턴이 적용될 수 있는 상황을 나타낸다. 경 우에 따라서는 패턴이 유용하지 못하는 상황을 나 타내기도 한다. 문제 : 패턴이 적용되어 해결될 필요가 있는 여러 디자인 이슈들을 기술한다. 이때 여러 제약 사항 과 영향력도 문제 해결을 위해 고려해야 한다 해결 : 문제를 해결하도록 설계를 구성하는 요소들 과 그 요소들 사이의 관계, 책임, 협력 관계를 기 술한다. 해결은 반드시 구체적인 구현 방법이나 언어에 의존적이지 않으며 다양한 상황에 적용할 수 있는 일종의 템플릿이다. 4
5
디자인 패턴의 구조 콘텍스트 : 클래스가 객체를 생성하는 과정을 제어해야 하는 상황 문제 : 애플리케이션이 전역적으로 접근하고 관리할 필요가 있는 데이터를 포함한다. 동시에 이러한 데이터는 시스템에 유일하다. 어떤 방식으로 클래스에서 생성되는 객체 의 수를 제어하고 클래스의 인터페이스에 접근하는 것을 제어해야 하는가 ? 해결 : 클래스의 생성자를 public 으로 정의하지 말고 private 이나 protected 로 선언해 외 부에서 생성자를 이용해 객체를 일단 생성할 수 없게 만들고 ( 이하 생략 ). 5 싱글톤 패턴
6
GoF 디자인 패턴 GoF(Gang of Four) 감마 / 리차드 헬름 / 랄프 존슨 / 존 블리시디시 생성 패턴 : 객체의 생성에 관련된 패턴 구조 패턴 : 클래스를 조합해 더 큰 구조를 만드는 패턴 행위 패턴 : 알고리즘이나 책임의 분배에 관한 패턴 6
7
4.3 UML 과 디자인 패턴 컬레보레이션을 통해 디자인 패턴 기술 역할들의 상호작용을 추상화 7
8
컬레보레이션 어커런스 8
9
순차 다이어그램 객체들 사이의 메시지 송신과 그들의 순서 9
10
메시지 10
11
체크포인트 그림 4-8 의 순차 다이어그램에 해당하는 코드를 작성하라. 다음 순차 다이어그램에 해당하는 코드를 작성하라. 11
12
프레임 12
13
상호작용 13
14
alt 14
15
loop 15
16
순차 다이어그램과 클래스 다이어그램 16
Similar presentations