
책소개
C++는 C++11/14/17을 거치면서 강력한 언어로 발전했으며, 표현력이 풍부해졌다. GoF의 전통적인 디자인 패턴을 표현력이 풍부해진 모던 C++로 새롭게 학습한다. 또한, 모던 C++을 디자인 패턴에 활용하는 방법을 통해 모던 C++을 응용하는 방법도 학습할 수 있다.
저자소개
출판사소개
목차
1장 개요
__1.1 사전 지식
__1.2 중요한 개념
__1.3 SOLID 디자인 원칙
제 I 부 생성 패턴
I.1 함수에서의 객체 리턴
2장 빌더
__2.1 시나리오
__2.2 단순한 빌더
__2.3 흐름식 빌더
__2.4 의도 알려주기
__2.5 그루비-스타일 빌더
__2.6 컴포지트 빌더
__2.7 요약
3장 팩터리
__3.1 시나리오
__3.2 팩터리 메서드
__3.3 팩터리
__3.4 내부 팩터리
__3.5 추상 팩터리
__3.6 함수형 팩터리
__3.7 요약
4장 프로토타입
__4.1 객체 생성
__4.2 평범한 중복 처리
__4.3 복제 생성자를 통한 중복 처리
__4.4 직렬화(Serialization)
__4.5 프로토타입 팩터리
__4.6 요약
5장 싱글턴(Singleton)
__5.1 전역 객체로서의 싱글턴
__5.2 전통적인 구현
__5.2.1 멀티스레드 안정성
__5.3 싱글턴의 문제
__5.4 싱글턴과 제어 역전(Inversion of Control)
__5.5 모노스테이트(Monostate)
__5.6 요약
제 II 부 구조 패턴
6장 어댑터
__6.1 시나리오
__6.2 어댑터
__6.3 일시적 어댑터
__6.4 요약
7장 브릿지
__7.1 Pimpl 관례
__7.2 브릿지
__7.3 요약
8장 컴포지트
__8.1 배열에 기반한 속성
__8.2 그래픽 객체의 그루핑
__8.3 뉴럴 네트워크
__8.4 요약
9장 데커레이터
__9.1 시나리오
__9.2 동적 데커레이터
__9.3 정적 데커레이터
__9.4 함수형 데커레이터
__9.5 요약
10장 퍼사드( )
__10.1 터미널은 어떻게 동작할까?
__10.2 고급 터미널
__10.3 퍼사드는 어디에 있는가?
__10.4 요약
11장 플라이웨이트(Flyweight)
__11.1 사용자 이름
__11.2 Boost.Flyweight
__11.3 문자열 범위
__11.4 섣부른 접근 방법
__11.5 플라이웨이트의 구현
__11.6 요약
12장 프록시(Proxy)
__12.1 스마트 포인터
__12.2 속성 프록시
__12.3 가상 프록시
__12.4 커뮤니케이션 프록시
__12.5 요약
제 III 부 행태 패턴
13장 책임 사슬(Chain of Responsibility)
__13.1 시나리오
__13.2 포인터 사슬
__13.3 브로커 사슬
__13.4 요약
14장 커맨드
__14.1 시나리오
__14.2 커맨드 패턴의 구현
__14.3 되돌리기(Undo) 작업
__14.4 컴포지트 커맨드
__14.5 명령과 조회의 분리
__14.6 요약
15장 인터프리터
__15.1 산술 표현식의 계산
__15.2 Boost.Spirit을 이용한 파싱
__15.3 요약
16장 반복자(Iterator)
__16.1 표준 라이브러리의 반복자
__16.2 이진 트리의 탐색
__16.3 코루틴(Coroutine)을 이용한 순회
__16.4 요약
17장 매개자(Mediator)
__17.1 채팅 룸
__17.2 매개자와 이벤트
__17.3 요약
18장 메멘토(Memento)
__18.1 은행 계좌
__18.2 Undo와 Redo
__18.3 요약
19장 Null 객체
__19.1 시나리오
__19.2 Null 객체
__19.3 shared_ptr는 Null 객체가 아니다
__19.4 개선된 디자인
__19.5 묵시적인 Null 객체
__19.6 요약
20장 관찰자(Observer)
__20.1 속성 관찰자
__20.2 Observer
__20.3 Observable
__20.4 관찰자(Observer)와 관찰 대상(Observable)의 연결
__20.5 종속성 문제
__20.6 수신 해제와 스레드 안정성
__20.7 재진입성(Reentrancy)
__20.8 Boost.Signals2를 이용한 관찰자
__20.9 요약
21장 상태(State)
__21.1 상태 기반 상태 전이
__21.2 수작업으로 만드는 상태 머신
__21.3 Boost.MSM을 이용한 상태 머신
__21.4 요약
22장 전략
__22.1 동적 전략
__22.2 정적 전략
__22.3 요약
23장 템플릿 메서드
__23.1 게임 시뮬레이션
__23.2 요약
24장 방문자(Visitor)
__24.1 침습적 방문자
__24.2 반추적(reflective) 출력
__24.3 디스패치(Dispatch)?
__24.4 전통적인 방문자
__24.5 비순환 방문자
__24.6 std::variant와 std::visit
__24.7 요약
제 IV 부 부록: 함수형 디자인 패턴
25장 ~라면 모나드(Maybe Monad)
배송
- 배송비, 무료배송비는 업체 사정에 따라 달라질 수 있습니다.
- 배송은 결제 확인 후 다음날부터 2~3일 이내에 배송됩니다. (단 도서 산간지역은 1~2일정도 더 소요됩니다.)
- 공휴일은 배송기간에 포함되지 않습니다.
- 주문하신 상품이 여러개인 경우 동일한 업체의 상품만 묶음 배송 가능합니다. (업체 사정에 따라 달라질 수 있습니다.)
- 배송정보는 상단 주문조회나 마이페이지 주문목록에서 가능합니다.
상품 품절
- 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드립니다.
주문취소/변경
- 주문 상품에 대한 변경사항(품절,가격변동)이 발생하면 전화나 메일을 통해 변경내용을 알려드립니다.
- 주문 상품의 변경/취소/환불은 배송 시작전 마이페이지에서 직접 신청이 가능합니다.
- 주문 상품이 발송된 시점에서는 변경/취소/환불이 모두 불가능합니다.
반품/교환
- 기간 : 배송받으신 후 7일 이내에 가능합니다.
- 방법 : 홈페이지 마이페이지 > 반품/ 교환 신청 및 조회에서 가능합니다.
- 배송비 부담 : 상품에 이상이 있을시에는 무료, 고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담입니다.
- 포장 개봉 후 재판매가 불가능한 상품은 반품/교환이 불가능합니다.
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우, 반품/교환이 불가능합니다.
반품/교환 불가 사유
- 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우 (단지 확인을 위한 포장 훼손은 제외)
- 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품 등의 포장을 훼손한 경우
- 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
- 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
- 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
소비자 피해보상 환불 지연에 따른 배상
- 상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리합니다.
- 대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리합니다.