Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 독서
- 직장인
- 클린코드
- Linux
- 헤드퍼스트
- Java
- 상속
- 헤드퍼스트디자인패턴
- 성수맛집
- 개발자
- IntelliJ
- JAVA개발자
- 오브젝트
- 성수핫플
- 객체지향
- 깨끗한코드
- 성수
- JavaScript
- 코딩
- docker
- 독서일지
- DesignPattern
- 성수볼거리
- 주니어개발자
- 직장인점심
- 책너두
- 디자인패턴
- 책읽기
- 성수직장인
- 객체지향프로그래밍
Archives
- Today
- Total
닭발개발
[헤드퍼스트 디자인패턴] 17일차. 227-239pg 본문
728x90
17일차
헤드퍼스트 디자인패턴 [3주차_금요일]
227-239pg
요약
CHAPTER 06. 호출 캡슐화하기 (feat. 커맨드 패턴)
메소드 호출을 캡슐화 한다.
[ 만능 IOT 리모컨 ]
- 프로그래밍이 가능한 7개의 슬롯
- 7개의 슬롯마다 각각 온오프 버튼이 있다.
- 마지막으로 누른 버튼의 명령을 취소하는 ‘UNDO’ 버튼이 있다.
- 리모컨에서 제어해야 하는 객체의 인터페이스 파악
- 클래스가 많고, 공통 인터페이스가 없다.
- 앞으로 추가될 클래스도 있음
- 리모컨 버튼이 눌렸을 때 호출되는 코드와 실제로 일을 처리하는 코드가 분리되어야 한다.
[ 커맨트 패턴 ]
- 어떤 작업을 요청하는 쪽과 그 작업을 처리하는 쪽을 분리할 수 있다.
- 특정 객체에 관한 특정 작업 요청을 캡슐화해 준다.
- 객체마을 식당 예시
-
- 고객이 종업원에게 주문을 한다. createOrder()
- 종업원은 “주문들어왔어요!” 전달. takeOrder(), orderUp()
- 주방장이 주문대로 음식 준비 makeBurger(), makeShake()
-
- 커맨트 패턴 다이어그램
-
- 클라이언트가 command 객체 생성 : createCommandObject()
- command 객체에는 행동(execute)과 리시버 정보가 같이 들어있다.
- execute() : 행동을 캡슐화 하며, 리시버에 있는 특정 행동을 처리한다.
- 클라이언트는 Invoker 객체의 setCommand() 메소드를 호출, 이 때 command 객체를 넘겨줌: setCommand()
- 인보커는 커맨드 객체가 나중에 쓰일 때까지 보관함.
- 인보커에서 커맨드 객체의 execute() 메소드 호출하면
- 리시버에 있는 행동 메소드가 호출된다.
-
발췌
💡 [ 커맨트 패턴 ]
어떤 작업을 요청하는 쪽과 그 작업을 처리하는 쪽을 분리할 수 있다.
특정 객체에 관한 특정 작업 요청을 캡슐화해 준다.
728x90
반응형
'책책책 책을 읽읍시다‼ ver.개발 > [ 헤드퍼스트 디자인패턴 ]' 카테고리의 다른 글
[헤드퍼스트 디자인패턴] 19일차. 257-271pg (0) | 2023.05.18 |
---|---|
[헤드퍼스트 디자인패턴] 18일차. 240-256pg (0) | 2023.05.17 |
[헤드퍼스트 디자인패턴] 16일차. 217-226pg (0) | 2023.05.11 |
[헤드퍼스트 디자인패턴] 15일차. 205-216pg (2) | 2023.05.10 |
[헤드퍼스트 디자인패턴] 14일차. 190-204pg (0) | 2023.05.10 |