본문 바로가기

Server Programming/Spring Backend Programming

자바의 디자인 패턴

반응형

1. 디자인 패턴이 무엇인가요? 리팩토링은?

2. 객체를 생성하는 패턴들

  • Factory Method - 팩토리를 활용한 객체 생성과 리팩토링
  • Abstract Factory - 팩토리를 선택하여 인스턴스의 세트를 만들자
  • Singleton - 단 하나의 인스턴스만을 생성하기

3. 알고리즘 뼈대나 기능과 구현을 분리하여 좀더 유연하게 만들기

  • Strategy - 정책이나 알고리즘을 분리하고 필요에 따라 추가 대체할 수 있도록 함
  • Bridge - 기능이 선언된 부분과 이에 대한 다양한 구현부를 분리하고 bridge를 통해 연결함
  • Template Method - 고정된 흐름은 Template으로 정의하고 그 내부에 다양하게 구현될 수 있는 메서드들은 서브클래스에서 구현

4. 동일시하기

  • Decorator - 다양한 기능들을 유연하게 추가하기 (Object와 Decorator를 동일시)
  • Composite - 단순 객체와 이를 포함하는 복합 객체를 동일시

5. 상태를 클래스로 표현하여 유연하게 만들기

  • State - 상태의 여러 값에 기반하여 클래스 전반의 기능들이 결정될 때
  • Observer - 하나의 객체(Subject)에 의존성을 가진 여러 객체(Observer)들에게 변화를 통지해야 할 때

6. 복잡한 것을 단순하게

  • Facade - 클라이언트가 사용하기 편하게 하나의 인터페이스를 제공하자
  • Mediator - 여러 객체가 서로 소통하지 않고 중앙의 하나의 객체와만 소통하게

7. 구조안을 돌아다니는 패턴들

  • Iterator - 객체를 순회하는 방법에 대한 동일한 인터페이스를 제공하자
  • Visitor - 객체를 방문하여 기능을 수행한다

8. 접근 제어하는 방법

  • Proxy - 실제 객체에 대한 대리자를 둔다

9. 호환

  • Adapter - 클라이언트가 원하는 인터페이스로 변경해주기

10. 명령을 객체로

  • Command - 다양하게 수행되어야 하는 일들을 일관된 인터페이스로 캡슐화하여 처리

11. 디자인 패턴과 함께하는 슬기로운 생활

반응형