Command Pattern

요청 자체를 개체화하는 것이다. 그리고 서로 다른 요청을 객체화하여 클라이언트에게 파라미터로 넘겨줄 수 있게 한다.

활용성
Command 객체는 액션이 객체내에서 발생했을때 호출되는 Execute() 메소드를 가지고 있다. 요구되는 액션은 Command 객체를 상속받아 각각의 맞는 Execute() 메소드를 정의한다.
그러면 우리는 요구되는 엑션을 수행하는 각각의 객체에 대한 Execute 메소드를 제공할 수 있어, 그 것이 속해 있는 객체내에서 무엇을 할 것인가에 대한 정보를 유지할 수 있다.
Command 패턴의 중요한 목적은 프로그램을 유지하고 사용자 인터페이스 객체들을 완전히 분리하는 것이고 다른 객체들의 작업에 대해 알 필요가 없다.
사용자 인터페이스는 명령을 받고 Command 객체에게 어떤 종류의 의무든지 알려줄 수가 있다. 사용자 인터페이스는 어떤일을 해야할 지 알려고 하지 않아도 되고 알 필요도 없다.

public void actionPerformed(ActionEvent e) {	Command cmd = (Command)e.getSource();	cmd.Execute();}

마지막으로, 취소 요구들을 지원할 수 있기 위해서 연산자들을 기억하는 Command 객체에도 사용되어 질 수 있다.

















  • Command : 오퍼레이션 수행에 필요한 인터페이스 선언
  • ConcreteCommand(PasteCommand, OpenCommand) : Receiver객체와 액션 간의 연결성을 정의한다. 또한 처리 객체에 정의된 오퍼레이션을 호출하도록 Execute를 구현한다.
  • Client(Application) : ConcreteCommand 객체를 생성하고 처리 객체로 정의 한다.
  • Invoker(MenuItem) : 명령어에게 처리를 수행할 것을 요청한다.
  • Receiver(Document, Application) : 요청에 관련된 오퍼레이션 수행방법을 알고 있다.

!단점
명령에 따른 작은 클래스들이 많아진다.

by 이카로스 | 2007/05/18 18:17 | Design Pattern | 트랙백 | 핑백(1) | 덧글(0)

트랙백 주소 : http://icarosss.egloos.com/tb/1195184
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at 지니랜드 : 커맨드 패턴 관련.. at 2009/03/24 10:14

... http://javacan.tistory.com/entry/6http://icarosss.egloos.com/1195184http://teamblog.joinc.co.kr/yundream/451http://blog.jrcho.com/553 ... more

:         :

:

비공개 덧글

.

<< 이전 페이지     다음 페이지 >>