✔︎ 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 관점
예제 코드
Adapter Pattern 예제 코드
참고