命令模式:
命令模式有三個角色:1、接收者。2、命令者。3、調用者
這三個的關系是:接收者自己有方法,有屬性,有自己的行為。命令者定義為一個接口,實現該接口的類持有接收者類,通過構造加載進來,同時有一個execute()方法,里面調用接收者的方法。調用者持有命令者接口,通過set方法加載進來,并有一個action()方法這里和execute()方法區分,里面調用execute()方法,所以調用者對外只暴露該action方法便可以實現不同的行為。實例化的過程為:
Receive receive = new Receive();
Command cc = new ConcreteCommand(receive);
Invoker ik = new Invoker();
ik.setCommand(cc);
ik.action();//這里即為調用的cc.execute()方法但是里面又調用的receiver的方法,這里就等于將調用者與接收者通過命令者解耦了,調用者不關心內部怎么實現,只需調用action()方法,就可以調用receive的方法,對外只暴露了一個方法。
這個模式可以用于隊列請求,日志請求,還有struts框架的Action類也是用命令模式實現,就寫到這里明天補充代碼。
posted on 2010-09-06 00:21
朔望魔刃 閱讀(280)
評論(0) 編輯 收藏 所屬分類:
設計模式&&數據結構