디자인 패턴: Command 패턴, Adapter 패턴

yshjft·2022년 2월 8일
0

Java, OOP

목록 보기
14/27

✔︎ Command Pattern

  • 실행될 기능을 캡슐화함으로서 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴
  • 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우 이벤트를 발생시키는 클래스에 수정하지 않아야할 때 유용

  • Invoker
    • 기능의 실행을 요청하는 클래스
  • Command
    • 실행될 기능에 대한 인터페이스
  • ConcreteCommand
    • Command 인터페이스 구현
    • 실제로 실행되는 기능을 구현
  • Receiver
    • ConcreteCommand에서 execute 메서드를 구현할 때 필요한 클래스

예제 코드

Command Pattern 예제 코드

참고

✔︎ Adapter Pattern

인터페이스가 서로 다른 객체들이 같은 형식 아래 작동할 수 있도록 해준다. 이를 통해 클라이언트와 인터페이스를 분리시키고 후에 인터페이스가 변경되더라도 클라이언트를 수정할 필요가 없어 재사용성을 높일 수 있다.

객체 어댑터클래스 어댑터
  • Client
    • 호환되지 않는 외부 객체를 사용하려는 객체
  • Adaptee
    • 호환되지 않는 외부 객체
  • Target Interface
    • Adapter가 구현하는 인터페이스
    • Client는 Target Interface를 통해 Adaptee를 사용
  • Adapter
    • Client와 Adaptee를 연결해주는 역할
    • Client → Target Interface → Adapter에서 Client의 요청을 Adaptee에게 전달 → 처리는 Adaptee에서 이루어짐
  • 객체 어댑터
    • 구성(참조)
    • 클래스 어댑터 보다 유연하나 Adaptee 객체를 생성해야 한다.
  • 클래스 어댑터
    • 상속
    • Adaptee 객체를 생성하지 않아도 되고 메서드를 오버라이드 할 수있다. 하지만 한 Adapter 클래스가 특정 Adatee 클래스에만 적용가능하게 된다

SOLID 관점

  • OCP 준수

예제 코드

Adapter Pattern 예제 코드

참고

profile
꾸준히 나아가자 🐢

0개의 댓글