24가지 패턴으로 알아보는 객체지향의 원리
0.1 패턴 0.2 소프트웨어 공학 0.3 설계 원칙 0.4 GoF 0.5 패턴의 요소 0.6 유지 보수 0.7 정리
- 1.1 클래스와 객체지향
- 1.2 의존성
- 1.3 의존성 주입
- 1.4 의존 관계의 문제점
- 1.5 팩토리 패턴
- 1.6 단순 팩토리
- 1.7 장점과 단점
- 1.8 관련 패턴
- 1.9 정리
- 2.1 객체 생성
- 2.2 유일한 객체
- 2.3 싱글턴
- 2.4 싱글턴 설계
- 2.5 인스턴스 생성
- 2.6 정적 클래스
- 2.7 싱글턴 확장
- 2.8 자원 처리
- 2.9 관련 패턴
- 2.10 정리
- 3.1 추상화
- 3.2 패턴 확장
- 3.3 상위 클래스
- 3.4 하위 클래스
- 3.5 매개변수
- 3.6 관련 패턴
- 3.7 정리
- 4.1 팩토리 메서드
- 4.2 그룹
- 4.3 팩토리 그룹
- 4.4 공장 추가
- 4.5 부품 추가 실습
- 4.6 패턴 결합
- 4.7 장점과 단점
- 4.8 관련 패턴
- 4.9 정리
- 5.1 건축물
- 5.2 객체 실습
- 5.3 빌더
- 5.4 알고리즘
- 5.5 생성 요청
- 5.6 관련 패턴
- 5.7 정리
- 6.1 생성
- 6.2 복사
- 6.3 프로토타입 패턴
- 6.4 특징
- 6.5 관련 패턴
- 6.6 정리
- 7.1 오래된 코드
- 7.2 잘못된 코드
- 7.3 어댑터
- 7.4 클래스 어댑터
- 7.5 객체 어댑터
- 7.6 설계
- 7.7 관련 패턴
- 7.8 정리
- 8.1 복잡한 코드
- 8.2 상속
- 8.3 패턴 설계 1
- 8.4 패턴 설계 2
- 8.5 장점과 단점
- 8.6 관련 패턴
- 8.7 정리
- 9.1 객체를 포함하는 객체
- 9.2 복합체의 구조적 특징
- 9.3 투명성을 활용한 동일한 설계
- 9.4 추상화를 통한 일반화 작업
- 9.5 Leaf
- 9.6 Composite
- 9.7 패턴 결합
- 9.8 적용 사례 1
- 9.9 적용 사례 2
- 9.10 적용 사례 3
- 9.11 장단점 및 결과
- 9.12 관련 패턴
- 9.13 정리
- 10.1 기능 추가
- 10.2 조건 추가
- 10.3 확장
- 10.4 객체에 추가 장식하기
- 10.5 기본 실습
- 10.6 장단점 및 결과
- 10.7 관련 패턴
- 10.8 정리
- 11.1 협업을 위한 분리 작업
- 11.2 파사드 패턴을 응용한 API
- 11.3 파사드를 이용한 단순화
- 11.4 최소 지식 원칙
- 11.5 기본 실습
- 11.6 파사드 패턴의 효과
- 11.7 관련 패턴
- 11.8 정리
- 12.1 메모리 자원
- 12.2 자원 공유
- 12.3 상태 구분
- 12.4 패턴 실습
- 12.5 관련 패턴
- 12.6 정리
- 13.1 객체를 대행하는 프록시
- 13.2 객체 가로채기
- 13.3 객체 분리
- 13.4 프록시 생성
- 13.5 행위를 처리하는 핸들러
- 13.6 동적 프록시
- 13.7 원격 프록시
- 13.8 가상 프록시
- 13.9 보호용 프록시
- 13.10 스마트 참조자
- 13.11 정리
- 14.1 객체의 집합
- 14.2 배열
- 14.3 집합체
- 14.4 반복자
- 14.5 작업 분할
- 14.6 관련 패턴
- 14.7 정리
- 15.1 명령 처리
- 15.2 명령 패턴의 구성과 특징
- 15.3 인터페이스
- 15.4 명령
- 15.5 리시버
- 15.6 인보커
- 15.7 클라이언트
- 15.8 undo
- 15.9 장단점
- 15.10 관련 패턴
- 15.11 정리
- 16.1 데이터 처리
- 16.2 분리
- 16.3 원소 객체
- 16.4 방문자
- 16.5 반복자
- 16.6 관련 패턴
- 16.7 정리
- 17.1 제어문
- 17.2 동작조건
- 17.3 행동 분리
- 17.4 사슬 연결
- 17.5 체인 패턴
- 17.6 미들웨어
- 17.7 관련 패턴
- 17.8 정리
- 18.1 감시자
- 18.2 구성
- 18.3 관계
- 18.4 주체
- 18.5 감시자
- 18.6 동작 실습
- 18.7 활용
- 18.8 관련 패턴
- 18.9 정리
- 19.1 중재
- 19.2 중재자
- 19.3 동료 객체
- 19.4 기본 실습
- 19.5 관련 패턴
- 19.6 정리
- 20.1 상태란
- 20.2 상태 처리
- 20.3 패턴 구현
- 20.4 객체 생성
- 20.5 상태 전환
- 20.6 실습
- 20.7 효과
- 20.8 패턴 유사성
- 20.9 적용 사례
- 20.10 정리
- 21.1 상태 저장
- 21.2 캡슐화
- 21.3 메멘토
- 21.4 Originator 클래스
- 21.5 CareTaker 클래스
- 21.6 관련 패턴
- 21.7 정리
- 22.1 프로그램의 구조
- 22.2 템플릿
- 22.3 일반화
- 22.4 추상화
- 22.5 템플릿 메서드
- 22.6 의존성 디자인
- 22.7 관련 패턴
- 22.8 정리
- 23.1 문제
- 23.2 알고리즘
- 23.3 분리
- 23.4 인터페이스
- 23.5 전략
- 23.6 전략 실행
- 23.7 적용 사례
- 23.8 관련 패턴
- 23.9 정리
- 24.1 언어
- 24.2 언어 설계
- 24.3 처리계
- 24.4 중간 코드
- 24.5 해석
- 24.6 클래스 표현
- 24.7 관련 패턴
- 24.8 정리
