Skip to content

Latest commit

 

History

History

Practical_design_pattern

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

13. 실전 디자인 패턴

디자인 패턴이란?

패턴은 특정 컨텍스트 내에서 주어진 문제에 대한 해결책이다.

  • 컨텍스트(context) : 패턴이 적용되는 상황, 반복적으로 일어날 수 있는 상황이어야 한다.
  • 문제(problem) : 그 컨텍스트 내에서 이루고자 하는 목표, 컨텍스트 내에서 생길 수 있는 제약조건이 포함됨.
  • 해결책(sloution) : 일련의 제약조건 속에서 누가 적용해도 목표를 이룰 수 있는 일반적인 디자인

어떤 컨텍스트 내에서 일련의 제약조건에 의해 영향을 받는 문제가 발생했다면, 그 제약조건 내에서 목적 달성을 위한 해결책이 되는 디자인을 적용하면 된다.

패턴 카탈로그

디자인 패턴 분류하기

https://github.com/Effective-Java-Camp/head-first-design-pattern/wiki

생성 패턴

  • 객체 인스턴스를 생성하는 패턴
  • 클라와 그 클라가 생성해야 하는 객체 인스턴스 사이의 연결을 끊어주는 패턴

구조 패턴

  • 클래스와 객체를 더 큰 구조로 만들 수 있게 구성을 사용하는 패턴

행동 패턴

  • 클래스와 객체들이 상호작용하는 방법과 역할을 분담하는 방법을 다루는 패턴
생성 패턴 구조 패턴 행동 패턴
싱글톤
추상 팩토리
팩토리 메소드
빌더
프로토타입
컴포지트
프록시
데코레이터
퍼사드
어댑터
플라이웨이트
브리지
템플릿 메소드
싱글톤
반복자
옵저버
상태
전략
인터프리터
중재자
비지터
메멘토

클래스 패턴

  • 클래스 사이의 관계가 상속으로 어떻게 정의되는지를 다룬다.
  • 클래스 사이의 관계는 대부분 컴파일할 때 결정된다.

객체 패턴

  • 객체 사이의 관계를 다룬다.
  • 객체 사이의 관계는 보통 구성으로 정의된다.
  • 일반적으로 실행 중에 관계가 결정되므로 보다 동적이고 유연하다
클래스 패턴 객체 패턴
템플릿 메소드
팩토리 메소드
어댑터
인터프리터
컴포지트
데코레이터
프록시
퍼사드
전략
커맨드
옵저버
프로토타입
싱글톤
추상 팩토리