Skip to content

infohojin/patterns

Repository files navigation

쉽게 배워 바로 써먹는 디자인 패턴

24가지 패턴으로 알아보는 객체지향의 원리

쉽게 배워 바로 써먹는 디자인 패턴

디자인 패턴

0.1 패턴 0.2 소프트웨어 공학 0.3 설계 원칙 0.4 GoF 0.5 패턴의 요소 0.6 유지 보수 0.7 정리

24개의 디자인패턴

[PART 1 생성 패턴 - 추상화를 통해 객체 생성하기]

CHAPTER 1 팩토리 패턴

  • 1.1 클래스와 객체지향
  • 1.2 의존성
  • 1.3 의존성 주입
  • 1.4 의존 관계의 문제점
  • 1.5 팩토리 패턴
  • 1.6 단순 팩토리
  • 1.7 장점과 단점
  • 1.8 관련 패턴
  • 1.9 정리

CHAPTER 2 싱글턴 패턴

  • 2.1 객체 생성
  • 2.2 유일한 객체
  • 2.3 싱글턴
  • 2.4 싱글턴 설계
  • 2.5 인스턴스 생성
  • 2.6 정적 클래스
  • 2.7 싱글턴 확장
  • 2.8 자원 처리
  • 2.9 관련 패턴
  • 2.10 정리

CHAPTER 3 팩토리 메서드 패턴

  • 3.1 추상화
  • 3.2 패턴 확장
  • 3.3 상위 클래스
  • 3.4 하위 클래스
  • 3.5 매개변수
  • 3.6 관련 패턴
  • 3.7 정리

CHAPTER 4 추상 팩토리 패턴

  • 4.1 팩토리 메서드
  • 4.2 그룹
  • 4.3 팩토리 그룹
  • 4.4 공장 추가
  • 4.5 부품 추가 실습
  • 4.6 패턴 결합
  • 4.7 장점과 단점
  • 4.8 관련 패턴
  • 4.9 정리

CHAPTER 5 빌더 패턴

  • 5.1 건축물
  • 5.2 객체 실습
  • 5.3 빌더
  • 5.4 알고리즘
  • 5.5 생성 요청
  • 5.6 관련 패턴
  • 5.7 정리

CHAPTER 6 프로토타입 패턴

  • 6.1 생성
  • 6.2 복사
  • 6.3 프로토타입 패턴
  • 6.4 특징
  • 6.5 관련 패턴
  • 6.6 정리

[PART 2 구조 패턴 - 상속과 합성을 사용해 객체 확장하기]

CHAPTER 7 어댑터 패턴

  • 7.1 오래된 코드
  • 7.2 잘못된 코드
  • 7.3 어댑터
  • 7.4 클래스 어댑터
  • 7.5 객체 어댑터
  • 7.6 설계
  • 7.7 관련 패턴
  • 7.8 정리

CHAPTER 8 브리지 패턴

  • 8.1 복잡한 코드
  • 8.2 상속
  • 8.3 패턴 설계 1
  • 8.4 패턴 설계 2
  • 8.5 장점과 단점
  • 8.6 관련 패턴
  • 8.7 정리

CHAPTER 9 복합체 패턴

  • 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 정리

CHAPTER 10 장식자 패턴

  • 10.1 기능 추가
  • 10.2 조건 추가
  • 10.3 확장
  • 10.4 객체에 추가 장식하기
  • 10.5 기본 실습
  • 10.6 장단점 및 결과
  • 10.7 관련 패턴
  • 10.8 정리

CHAPTER 11 파사드 패턴

  • 11.1 협업을 위한 분리 작업
  • 11.2 파사드 패턴을 응용한 API
  • 11.3 파사드를 이용한 단순화
  • 11.4 최소 지식 원칙
  • 11.5 기본 실습
  • 11.6 파사드 패턴의 효과
  • 11.7 관련 패턴
  • 11.8 정리

CHAPTER 12 플라이웨이트 패턴

  • 12.1 메모리 자원
  • 12.2 자원 공유
  • 12.3 상태 구분
  • 12.4 패턴 실습
  • 12.5 관련 패턴
  • 12.6 정리

CHAPTER 13 프록시 패턴

  • 13.1 객체를 대행하는 프록시
  • 13.2 객체 가로채기
  • 13.3 객체 분리
  • 13.4 프록시 생성
  • 13.5 행위를 처리하는 핸들러
  • 13.6 동적 프록시
  • 13.7 원격 프록시
  • 13.8 가상 프록시
  • 13.9 보호용 프록시
  • 13.10 스마트 참조자
  • 13.11 정리

[PART 3 행동 패턴 - 복합 구조로 객체의 책임 분산하기]

CHAPTER 14 반복자 패턴

  • 14.1 객체의 집합
  • 14.2 배열
  • 14.3 집합체
  • 14.4 반복자
  • 14.5 작업 분할
  • 14.6 관련 패턴
  • 14.7 정리

CHAPTER 15 명령 패턴

  • 15.1 명령 처리
  • 15.2 명령 패턴의 구성과 특징
  • 15.3 인터페이스
  • 15.4 명령
  • 15.5 리시버
  • 15.6 인보커
  • 15.7 클라이언트
  • 15.8 undo
  • 15.9 장단점
  • 15.10 관련 패턴
  • 15.11 정리

CHAPTER 16 방문자 패턴

  • 16.1 데이터 처리
  • 16.2 분리
  • 16.3 원소 객체
  • 16.4 방문자
  • 16.5 반복자
  • 16.6 관련 패턴
  • 16.7 정리
CHAPTER 17 체인 패턴
  • 17.1 제어문
  • 17.2 동작조건
  • 17.3 행동 분리
  • 17.4 사슬 연결
  • 17.5 체인 패턴
  • 17.6 미들웨어
  • 17.7 관련 패턴
  • 17.8 정리

CHAPTER 18 감시자 패턴

  • 18.1 감시자
  • 18.2 구성
  • 18.3 관계
  • 18.4 주체
  • 18.5 감시자
  • 18.6 동작 실습
  • 18.7 활용
  • 18.8 관련 패턴
  • 18.9 정리
CHAPTER 19 중재자 패턴
  • 19.1 중재
  • 19.2 중재자
  • 19.3 동료 객체
  • 19.4 기본 실습
  • 19.5 관련 패턴
  • 19.6 정리
CHAPTER 20 상태 패턴
  • 20.1 상태란
  • 20.2 상태 처리
  • 20.3 패턴 구현
  • 20.4 객체 생성
  • 20.5 상태 전환
  • 20.6 실습
  • 20.7 효과
  • 20.8 패턴 유사성
  • 20.9 적용 사례
  • 20.10 정리

CHAPTER 21 메멘토 패턴

  • 21.1 상태 저장
  • 21.2 캡슐화
  • 21.3 메멘토
  • 21.4 Originator 클래스
  • 21.5 CareTaker 클래스
  • 21.6 관련 패턴
  • 21.7 정리

CHAPTER 22 템플릿 메서드 패턴

  • 22.1 프로그램의 구조
  • 22.2 템플릿
  • 22.3 일반화
  • 22.4 추상화
  • 22.5 템플릿 메서드
  • 22.6 의존성 디자인
  • 22.7 관련 패턴
  • 22.8 정리
CHAPTER 23 전략 패턴
  • 23.1 문제
  • 23.2 알고리즘
  • 23.3 분리
  • 23.4 인터페이스
  • 23.5 전략
  • 23.6 전략 실행
  • 23.7 적용 사례
  • 23.8 관련 패턴
  • 23.9 정리

CHAPTER 24 인터프리터 패턴

  • 24.1 언어
  • 24.2 언어 설계
  • 24.3 처리계
  • 24.4 중간 코드
  • 24.5 해석
  • 24.6 클래스 표현
  • 24.7 관련 패턴
  • 24.8 정리

About

디자인패턴 학습 예제코드-한빛미디어

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages