감자튀김 공장🍟

[디자인 패턴] day 9 본문

JAVA

[디자인 패턴] day 9

Potato potage 2023. 8. 9. 23:32
반응형

<< 스프링 입문을 위한 자바 객체 지향의 원리와 이해 >> 를 읽고 정리합니다.

 

 

1. 데코레이터 패턴(Decorator Pattern)

  • 도장/도배업자, 장식자
  • 원본에 장식을 더하는 패턴
  • 프록시 패턴과 구현 방법 동일
    • 프록시 패턴은 클라이언트가 최종적으로 돌려 받는 반환값 조작x 그대로 전달
    • 데코레이터 패턴은 클라이언트가 받는 반환값에 장식을 덧입힘
  • "메서드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴"
  • OCP, DIP 적용

 

 

2. 싱글턴 패턴(Singleton Pattern)

  • 인스턴스를 하나만 만들어 사용
  • 필요 요소
    • new를 실행할 서 없도록 생성자에 private 접근 제어자를 지정
    • 유일한 단일 객체를 반환할 수 있는 정적 메서드 필요
    • 유일한 단일 객체를 참조할 정적 참조 변수 필요
  • 특징
    • private 생성자를 갖는다.
    • 단일 객체 참조 변수를 정적 속성으로 갖는다.
    • 단일 객체 참조 변수가 참조하는 단일 객체를 반환하는 getInstance() 정적 메서드를 갖는다.
    • 단일 객체는 쓰기 가능한 속성을 갖지 않는 것이 정석이다.

 

 

3. 템플릿 메서드 패턴(Template Method Pattern)

  • 상위 클래스에 공통 로직을 수행하는 템플릿 메서드와 하위 클래스에 오버라이딩을 강제하는 추상 메서드 또는 선택적으로 오버라이딩할 수 있는 훅(Hook) 메서드를 두는 패턴을 템플릿 메서드 패턴이라 한다.

 

 

4. 팩토리 메서드 패턴(Factory Method Pattern)

  • 공장을 의미한다.
  • 객체를 생성 반환하는 메서드를 의미 + Pattern (하위 클래스에서 팩터리 메서드를 오버라이딩해서 객체를 반환) 
  • "오버라이드된 메서드가 객체를 반환하는 패턴"

 

 

5. 전략 패턴(Strategy Pattern)

  • 구성 요소
    • 전략 메서드를 가진 전략 객체
    • 전략 객체를 사용하는 컨텍스트(전략 객체의 사용자/소비자)
    • 전략 객체를 생성해 컨텍스트에 주입하는 클라이언트(제3자, 전략 객체의 공급자)
  • 템플릿 메서드와 유사
    • 템플릿 메서드 패턴(상속) 
    • 전략 패턴(객체 주입)

 

 

6. 템플릿 콜백 패턴(Template Callback Pattern)

  • 전략 패턴의 변형, 스프링 DI에서 사용
  • 전략을 익명 내부 클래스로 정의해서 사용
반응형

'JAVA' 카테고리의 다른 글

[디자인 패턴] day 8  (0) 2023.08.08
[객체 지향 설계] day 7  (0) 2023.08.07
[JAVA 공부] day 6  (0) 2023.08.06
[JAVA 공부] day 5  (0) 2023.08.05
[JAVA 공부] day 4  (0) 2023.08.04
Comments