Notice
Recent Posts
Recent Comments
Link
- 책_곽용재님 홈페이지
- 책_노란북 - 책 가격비교
- 책_김재우-SICP번역
- 플밍_쏘쓰포지
- 플밍_CodingHorror ?
- 플밍_상킴
- 플밍_김민장님
- GPGStudy
- 플밍_미친감자님
- 플밍_jz
- 플밍_샤방샤방님
- 플밍_글쓰는프로그래머2
- 플밍_키보드후킹
- 사람_재혁
- 사람_kernel0
- 사람_박PD
- 사람_경석형
- 사람_nemo
- 사람_kikiwaka
- 사람_Junios
- 사람_harry
- 사람_어떤 개발자의 금서목록..
- 사람_모기소리
- 사람_낙타한마리
- 사람_redkuma
- 사람_영원의끝
- 사람_민식형
- 도스박스 다음카페
- 플레이웨어즈 - 게임하드웨어벤치마크
- http://puwazaza.com/
- David harvey의 Reading Marx's c…
- 씨네21
- 한겨레_임경선의 이기적인 상담실
- 본격2차대전만화 - 굽시니스트
- 영화_정성일 글모음 페이지
- 영화_영화속이데올로기파악하기
- 음식_생선회
- 죽력고
- 사람_한밀
- 플밍_수까락
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 소비자고발
- 강유원
- programming challenges
- 정신분석
- Programming
- 삼국지
- 진삼국무쌍5
- 진중권
- 단상
- template
- 삼국지6
- 영화
- 유머
- 김두식
- 프로그래밍
- 게임
- c++
- 책
- BSP
- 유시민
- 건강
- 태그가 아깝다
- modernc++
- 노무현
- 정성일
- stl
- 고전강의
- 일리아스
- 고등학교 사회공부
- 인문학
Archives
- Today
- Total
01-07 02:28
lancelot.com
Head First Design Pattern - 3장 Decorator Pattern 본문
1. 디자인원칙
클래스는 확장에 대해서는 열려 있어야 하지만 코드 변경에 대해서는 닫혀 있어야 한다.
스타버즈 커피숍에 여러종류의 커피들과 거기 올리는 데코레이션을 가지고 설명하고 있습니다. 예제가 적절하니 이해가 쏙쏙 잘되네요.
데코레이터 패턴은 역시 생성을 관리해주는 무엇이 있어야 겠군요. 혼자서는 쓰임이 자칫하면 스파게티 코드가 될 우려가 있어보입니다.
2. Decorator Pattern
객체에 추가적인 요건을 동적으로 첨가한다. 서브클래스를 통해 기능을 유용하게 확장하는 방법을 제공.
덧.
이거 예제 C++로 만들어보다가 const 때문에 삽질을 했네요.
같은 함수인가의 구분은 함수선언가지고 하는데요, 함수선언에는
함수명(인자...) const
뒤에 const 까지 들어갑니다. const가 있는거랑 없는거는 다른 함수라는 이야기지요(앞에 반환값은 함수선언에 들어가지 않습니다).
parent class의 함수에는 const 를 선언해놓고 child class 에서는 const를 잊어먹고 안달아놨는데, 가상함수를 실행하니 자꾸만 부모로 들어가더라구요.
왜이럴까 왜이럴까 한참 고민하다가 보니까 const가 붙어있더라는(예제라서 대충 줄을 따닥따닥붙여썼더니 더 안보였던거같네요 ㅡㅡ; )
ㅠㅠ
클래스는 확장에 대해서는 열려 있어야 하지만 코드 변경에 대해서는 닫혀 있어야 한다.
스타버즈 커피숍에 여러종류의 커피들과 거기 올리는 데코레이션을 가지고 설명하고 있습니다. 예제가 적절하니 이해가 쏙쏙 잘되네요.
데코레이터 패턴은 역시 생성을 관리해주는 무엇이 있어야 겠군요. 혼자서는 쓰임이 자칫하면 스파게티 코드가 될 우려가 있어보입니다.
2. Decorator Pattern
객체에 추가적인 요건을 동적으로 첨가한다. 서브클래스를 통해 기능을 유용하게 확장하는 방법을 제공.
덧.
이거 예제 C++로 만들어보다가 const 때문에 삽질을 했네요.
같은 함수인가의 구분은 함수선언가지고 하는데요, 함수선언에는
함수명(인자...) const
뒤에 const 까지 들어갑니다. const가 있는거랑 없는거는 다른 함수라는 이야기지요(앞에 반환값은 함수선언에 들어가지 않습니다).
parent class의 함수에는 const 를 선언해놓고 child class 에서는 const를 잊어먹고 안달아놨는데, 가상함수를 실행하니 자꾸만 부모로 들어가더라구요.
왜이럴까 왜이럴까 한참 고민하다가 보니까 const가 붙어있더라는(예제라서 대충 줄을 따닥따닥붙여썼더니 더 안보였던거같네요 ㅡㅡ; )
ㅠㅠ