본문 바로가기
JAVA

디자인 패턴

by 공부 안하고 싶은 사람 2021. 6. 28.
반응형

Singleton

  • 프로그램 내에서 1번만 생성되는 객체
  • private 생성자
  • static 자기자신
  • pubic 으로 get하여 자기자신 객체 사용
  • 인터페이스의 사용, lazy-loading 에 사용
  • 멀티쓰레드에서 주의 필요

Strategy

  • 모드(같은일) 변경
  • 동작들을 모듈화(특정 인터페이스를 상속)하여, 실행될 모듈을 갈아끼고 실행
  • 구현체 set 이후에 동작실행

State

  • 상태 변경
  • 상태들을 모듈화 하여, 실행시 각 모듈의 상태를 변경하며 실행
  • 동작을 실행하면, set이 실행되며 상태(구현체)가 변경

Command

  • 모드(다른일) 변경
  • 위와 비슷

Adapter

  • 인터페이스가 다른 객체끼리 같은 일을 할 수 있도록
  • 어탭터를 공동 인터페이스로 구현, 다른일을 하고 있는 객체를 가지고, 변환 함수를 구현
  • 어탭터에 달랏던 객체를 set하고, 공통으로 사용가능

Proxy

  • 대리인 객체를 할당하여, 작은일엔 대리인이 적용되고
  • 중요하거나, 큰작업이 필요할때 실제 클래스를 생성
  • 대리인 객체에 실제 객체를 포함
  • 작은 일은 대리인 객체가 직접실행
  • 큰일은 포함된 실제 객체를 초기화하여 실행

Facade

  • 여러 클래스를 사용하는 동작이 여러번 등장한다면
  • 해당 작업을 수행하는 클래스를 만들어서 사용

Template-method

  • 같은 형식을 지닌 특정 작업들의 세부 방식을 다양화하고자 할 때
  • 고정된 프로세스 전체 과정 + 세부 과정 override할 수 있는 abstract class

Decorator

  • 객체가 생성자 변수로 다른 객체 안에 들어감으로써 그 실행하는 메소드의 행동이 추가되는 것
  • 생성자 안에 들어가면, super()로 객체를 가져오고
  • 원하는 행동시 super.func() 실행 후, 추가 함수 실행

Factory-method

  • 팩토리에서 특정 값(eunm)으로 분기하여 각각의 클래스를 생성하여 리턴
  • 생성자 변경시 팩토리 내부만 변경가능
  • 모든 기능을 전부 알 필요없이 조건만 넘겨주면 적절한 클래스를 넘겨줌

Abstract-factory

  • 팩토리들을 묶을 수 있는 인터페이스를 생성하여
  • 팩토리들을 총괄 관리

Mediator

  • 한 객체에서 특정 이벤트가 발생할때마다 연결된 다른 클래스에 알릴때
  • 추상화된 이벤트들을 관리하는 중개자를 생성하여
  • 실제 객체는 중개자에를 이용하여 이벤트를 추가/관리
  • 여러 클래스의 관계가 특정 이벤트 중심으로 복잡하게 얽혀있을 때 유용

Composite

  • 폴더 시스템
  • 포함하는 것과 포함되는것들이 같은 방식으로 다뤄질 때
728x90
반응형

'JAVA' 카테고리의 다른 글

String / StringBuffer / StringBuilder  (0) 2021.06.28
SOLID  (0) 2021.06.28
인코딩 변환  (0) 2021.04.29
스트림  (0) 2021.02.19
함수형 인터페이스  (0) 2021.02.19

댓글