인기 글
-
5. 구현
항목 29: 예외 안전성이 확보되는 그날 위해 싸우고 또 싸우자!
예외 안정성에 이보다 나쁜 함수가 없다. 예외 안정성을 가진 함수를 만들려면... 자원이 새도록 만들지 않는다. 위 코드는 만약 new 에서 예외를 던지면 unlock()이 실행되지 않기 때문에 뮤텍스가 계속 lock 된 상태로 남게 된다. 자료구조가 더럽혀지는 것 하용하지 않는다. 위 코드는 만약 new 에서 예외를 던지면 bgImage가 가르키는 객체는 이미 사라진 후이고, 새 그림이 깔리지도 않았는데 imageChanges는 1 증가하고, 여튼 문제가 많다. ====================================================================== 자원 누출 문제부터 해결해보자. => 자원 관리 객체를 사용하면 됨 항목 13을 참고하자. 일단 자원(mutex)가 ..
- 4. 구조 패턴 4.1 적응자(ADAPTER) 의도 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응(변환) 시킨다. 다른 이름 Wrapper(래퍼) 동기 "프로그램이 요청하는 인터페이스 ≠ 툴킷에 정의된 인터페이스" 인 경우 툴킷이 재사용을 목표로 개발되었다고 해도 실제 재사용되지 못할 수가 있다. 그림 편집기를 예로 들어보자. 그림판의 중요한 추상적 개념은 그래픽 객체들이다. 공통된 그래픽 요소에 대한 인터페이스를 추상 클래스 Shape 이라고 정의한다. 그리고 각각의 그래픽 요소들을 Shape의 서브클래스로 정의한다. 즉, 선을 위한 LineShape, 다각형을 위한 PolygonShape 등을 Shape을 상속받아 개발하면 된다. LineShape이나 PolygonShape 과 같은 매우 기본적인 그래픽 요소들은 구현이 비교적 쉽..
- 1. 서론 1.5 카탈로그 조직화하기 패턴의 목적 · 생성 o 객체의 생성 과정에 관여 · 구조 o 클래스나 객체의 합성 · 행동 o 클래스나 객체들이 상호작용 하는 방법 o 클래스나 객체들이 책임을 분산하는 방법 패턴의 적용 범위 · 클래스 패턴 o 클래스와 서브클래스 간의 관련성을 다루는 패턴 o 관련성은 주로 상속 o 컴파일 타임에 정적으로 결정되는 패턴 · 객체 패턴 o 객체간의 관련성을 다룸 o 런타에 변경할 수 있고, 동적인 패턴 대부분은 객체 패턴이다.
- 1. 서론 1.3 디자인 패턴 기술하기 설계를 재사용하기 좋게 만들려면 설계를 하기까지의 다양한 결정, 대안, 장단점 등을 고려한 과정도 함께 적어주어야 합니다. -패턴 이름과 분류(Pattern Name and Classification) -의도(Intent) -다른 이름(Also Known As) -동기(Motivation) : 설계 문제를 제시하고, 패턴 안에서 클래스나 객체 구조가 어떻게 문제를 해결하는지 설명해 주는 일종의 시나리오 -활용성(Applicability) -구조(Structure) : 객체 모델링 기법(Object Modeling Technique: OMT)에 기반을 둔 표기법을 이용하여 해당 패턴에서 쓰는 클래스들을 시각적으로 나타냅니다. 또한, 객체 사이에 오가는 요청과 협력 관계의 순차를 표현하기 위해서 상호작용 다..
최신 글
-
4. 구조 패턴 4.1 적응자(ADAPTER) 의도 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응(변환) 시킨다. 다른 이름 Wrapper(래퍼) 동기 "프로그램이 요청하는 인터페이스 ≠ 툴킷에 정의된 인터페이스" 인 경우 툴킷이 재사용을 목표로 개발되었다고 해도 실제 재사용되지 못할 수가 있다. 그림 편집기를 예로 들어보자. 그림판의 중요한 추상적 개념은 그래픽 객체들이다. 공통된 그래픽 요소에 대한 인터페이스를 추상 클래스 Shape 이라고 정의한다. 그리고 각각의 그래픽 요소들을 Shape의 서브클래스로 정의한다. 즉, 선을 위한 LineShape, 다각형을 위한 PolygonShape 등을 Shape을 상속받아 개발하면 된다. LineShape이나 PolygonShape 과 같은 매우 기본적인 그래픽 요소들은 구현이 비교적 쉽.. -
1. 서론 1.5 카탈로그 조직화하기 패턴의 목적 · 생성 o 객체의 생성 과정에 관여 · 구조 o 클래스나 객체의 합성 · 행동 o 클래스나 객체들이 상호작용 하는 방법 o 클래스나 객체들이 책임을 분산하는 방법 패턴의 적용 범위 · 클래스 패턴 o 클래스와 서브클래스 간의 관련성을 다루는 패턴 o 관련성은 주로 상속 o 컴파일 타임에 정적으로 결정되는 패턴 · 객체 패턴 o 객체간의 관련성을 다룸 o 런타에 변경할 수 있고, 동적인 패턴 대부분은 객체 패턴이다. -
1. 서론 1.3 디자인 패턴 기술하기 설계를 재사용하기 좋게 만들려면 설계를 하기까지의 다양한 결정, 대안, 장단점 등을 고려한 과정도 함께 적어주어야 합니다. -패턴 이름과 분류(Pattern Name and Classification) -의도(Intent) -다른 이름(Also Known As) -동기(Motivation) : 설계 문제를 제시하고, 패턴 안에서 클래스나 객체 구조가 어떻게 문제를 해결하는지 설명해 주는 일종의 시나리오 -활용성(Applicability) -구조(Structure) : 객체 모델링 기법(Object Modeling Technique: OMT)에 기반을 둔 표기법을 이용하여 해당 패턴에서 쓰는 클래스들을 시각적으로 나타냅니다. 또한, 객체 사이에 오가는 요청과 협력 관계의 순차를 표현하기 위해서 상호작용 다..