案例
/**
* * @classname commandpattern
* @description 命令模式
* @author fuling
* @date 2023年11月7日 下午1:11:19
*/public
class
commandpattern
}/**
* * @classname command
* @description 命令介面,定義了兩個統一的對外介面方法
* @author fuling
* @date 2023年11月7日 下午1:14:16
*/inte***ce
command
/** *
* @classname lightreceiver
* @description 電燈類
* @author fuling
* @date 2023年11月7日 下午1:13:35
*/class
lightreceiver
//關燈操作
void
off()}
/** *
* @classname lightoncommand
* @description 開燈命令,將開燈命令和電燈繫結
* @author fuling
* @date 2023年11月7日 下午1:22:44
*/class
lightoncommand
implements
command
@override
public
void
undo()
}/**
* * @classname lightoffcommand
* @description 關燈命令,將關燈命令和電燈繫結
* @author fuling
* @date 2023年11月7日 下午1:24:45
*/class
lightoffcommand
implements
command
@override
public
void
undo()
}/**
* * @classname nocommand
* @description 空命令,作用是在呼叫者呼叫時可以省去空判斷
* @author fuling
* @date 2023年11月7日 下午1:26:27
*/class
nocommand
implements
command
@override
public
void
undo()
}/**
* * @classname remotecontroller
* @author fuling
* @date 2023年11月7日 下午2:19:23
*/class
remotecontroller
for(
int i =
0; i < offcommands.length; i++)}
//設定一組開關命令,index表示執行者的下標,oncommand是對應的開命令,offcommand是對應的關命令
void
setcommand
(int index, command oncommand, command offcommand)
//按下某個執行者的開按鈕(比如按下開燈按鈕)
void
pushon
(int index)
void
pushoff
(int index)
//撤回操作
void
undo()
}
命令模式小結
命令模式在spring框架中的應用
jdbctemplate類使用到了命令模式
statementcallback相當於命令介面
這些實現了命令介面的類同時也充當了接收者
jdbctemplate相當於呼叫者,其裡邊的execute方法,引數傳入了乙個命令介面,方法中呼叫該介面定義的統一方法doinstatement
設計模式 命令設計模式
一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象command 命令的具體實現concretecommand 命令處理者抽象ireceiver 命令處理者的具體實現concretereceiver 命令的呼叫者invoker 客戶端client...
設計模式 命令模式
1 命令模式的角色組成 1 命令角色 command 生命執行操作的介面。介面或抽象類來實現。2 具體命令角色 concrete command 將乙個接收者物件繫結於乙個動作 呼叫接收者相應的操作,以實現命令角色宣告的執行操作的介面。3 客戶角色 client 建立乙個具體命令物件 並可以設定它的...
設計模式 命令模式
1 command.h ifndef command h define command h include include include using namespace std class chef 廚師,具體命令的執行者 class command 命令基類 class makemuttonco...