런타임노트

[헤드퍼스트 디자인패턴] 19일차. 257-271pg 본문

책책책 책을 읽읍시다‼ ver.개발/[ 헤드퍼스트 디자인패턴 ]

[헤드퍼스트 디자인패턴] 19일차. 257-271pg

D269 2023. 5. 18. 09:03
728x90

19일차

헤드퍼스트 디자인패턴 [4주차_월요일]

257-271pg

요약

CHAPTER 06. 호출 캡슐화하기 (feat. 커맨드 패턴)

메소드 호출을 캡슐화 한다.

 

[ 여러 동작을 한 번에 처리하기 - 리모컨에 파티모드 추가 ]

  • 다른 커맨드를 실행할 수 있는 새로운 종류의 커맨드를 만들어서 여러가지 커맨드를 한 번에 실행할 수 있을까? → 매크로 커맨드 만들어보기
      1. 매크로에 넣을 일련의 커맨드 만들기
      1. on 커맨드 , off 커맨드용 배열을 만들고 필요한 커맨드를 넣는다.
      1. MacroCommand 객체를 버튼에 할당한다.

 

 

[ 커맨드 패턴 활용 - 요청을 큐에 저장하기 ]

  • 커맨드로 computation의 한 부분을 패키지로 묶어서 일급 객체 형태로 전달 할 수 있다.
  • 그러면 시간이 지나도 그 computation을 호출 할 수 있다.
  • 큐 : 한 쪽 끝은 커맨드를 추가할 수 있고, 다른 쪽 끝에는 커맨드를 처리하는 스레드들이 대기하고 있다.
  • 각 스레드는 우선 execute() 메소드를 호출하고 호출이 완료되면 커맨드객체를 버리고 새로운 커맨드 객체를 가져온다.
  • 커맨드 패턴 더 활용하기 : 커맨드 패턴을 사용하면 store()와 load() 메소드를 추가해서 애플리케이션에서 모든 행동을 기록해두었다가 애플리케이션이 다운 되었을 때 다시 호출해서 복구할 수 있다.

 

 

[ 객체지향 패턴 추가++ ]

  • 커맨드 패턴 : 요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화 할 수 있습니다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있다.

 

 

CHAPTER 07. 적응시키기 (feat. 어댑터 패턴과 퍼사드 패턴)

  • 실제와 다른 인터페이스를 가진 것처럼 보이도록 객체를 감싸면, 특정 인터페이스가 필요한 디자인을 다른 인터페이스를 구현하는 클래스에 적응시킬 수 있다.
  • 객체를 감싸서 인터페이스 단순화하기

 

발췌

💡 커맨드 객체에서 대부분의 행동을 처리해도 되지만, 그러면 인보커와 리시버를 분리하기 어렵고, 리시버로 커맨드를 매개변수화할 수 없다!
💡 요청하는 객체와 요청을 수행하는 객체를 분리하고 싶다면 커맨드 패턴을 사용하면 된다.

 

 

 

 

728x90
반응형