差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| study:java:design_pattern:command [2008/09/02 15:57] – banana | study:java:design_pattern:command [2012/12/11 14:02] (現在) – [the Definition of Command Pattern] banana | ||
|---|---|---|---|
| 行 9: | 行 9: | ||
| 하나씩 살펴볼까요? | 하나씩 살펴볼까요? | ||
| 이렇게 하기 위해서 행동과 리시버를 한 객체에 집어넣고, | 이렇게 하기 위해서 행동과 리시버를 한 객체에 집어넣고, | ||
| - | 을 씁니다. 이 메소드 호출에 의해서 리시버에서 일련의 작업이 처리됩니다. 외부에서 볼 때는 어떤 객체가 리시 | + | 을 씁니다. 이 메소드 호출에 의해서 리시버에서 일련의 작업이 처리됩니다. 외부에서 볼 때는 어떤 객체가 리시버 |
| - | 버 역할을 하는지, 그 리시버에서 실제로 어떤 일을 하는지 알 수 없습니다. 그냥 execute() 메소드를 호출하면 | + | 역할을 하는지, 그 리시버에서 실제로 어떤 일을 하는지 알 수 없습니다. 그냥 execute() 메소드를 호출하면 |
| 요구 사항이 처리된다는 것만 알 수 있을 뿐이죠. | 요구 사항이 처리된다는 것만 알 수 있을 뿐이죠. | ||
| 이제 커맨드 패턴의 클래스 다이어그램을 살펴보도록 하겠습니다. | 이제 커맨드 패턴의 클래스 다이어그램을 살펴보도록 하겠습니다. | ||
| + | |||
| + | {{keywords> | ||
| ===== Class Diagram ===== | ===== Class Diagram ===== | ||
| 行 20: | 行 22: | ||
| Command Pattern의 예로서 가전제품을 조정 가능한 리모컨 API을 살표보도록 하겠습니다. | Command Pattern의 예로서 가전제품을 조정 가능한 리모컨 API을 살표보도록 하겠습니다. | ||
| 이왕이면 작업취소 기능까지 구현해보겠습니다. | 이왕이면 작업취소 기능까지 구현해보겠습니다. | ||
| + | |||
| 行 78: | 行 81: | ||
| </ | </ | ||
| - | 정말 쉽죠? 아직 끝난 건 아닙니다. RemoteControl 클래스에 사용자가 마지막으로 누른 버튼을 기록하고, | + | 정말 쉽죠? 아직 끝난 건 아닙니다. |
| 눌렸을 때 필요한 작업을 처리하기 위한 코드를 추가해야 합니다. | 눌렸을 때 필요한 작업을 처리하기 위한 코드를 추가해야 합니다. | ||
| + | |||
| 行 126: | 行 130: | ||
| </ | </ | ||
| - | 여기서 %%NoCommand%%는 아무것도 하지 않는 Null 객체((딱히 리턴할 객체는 없지만 클라이언트 쪽에서 null을 처리하지 않아도 되도록 하고 싶을 때 널 객체를 활용하면 좋습니다. 예를 들어, 리모컨의 경우에, 처음 리모컨을 가지고 왔을 때는 아무 명령도 할당되지 않은 상태이므로, | + | 여기서 %%NoCommand%%는 아무것도 하지 않는 Null 객체((딱히 리턴할 객체는 없지만 클라이언트 쪽에서 null을 처리하지 않아도 되도록 하고 싶을 때 널 객체를 활용하면 좋습니다. 예를 들어, 리모컨의 경우에, 처음 리모컨을 가지고 왔을 때는 아무 명령도 할당되지 않은 상태이므로, |
| ===== Client Class ===== | ===== Client Class ===== | ||