命令模式是一種資料驅動設計模式,它屬於行為型模式,請求以命令的形式包裹在物件中,並傳給呼叫物件,呼叫物件尋找可以處理該命令的合適的物件,並把該命令傳給相應的物件。一、建立命令模式uml類圖
二、建立命令模式的步驟
(1):建立命令介面command
(2):建立命令接收者lightreceiver
(3):建立實現類lightoffcommand、lightoncommand、nocommand
(4):建立命令操作者remotecontroller
(1):建立命令介面command
/**
* @author yly
* @classname command
* @date 2020/7/21
* @version 1.0.2
*/public
inte***ce
command
(2):建立命令接收者lightreceiver/**
* @author yly
* @classname lightreceiver
* @date 2020/7/21
* @version 1.0.2
*/public
class
lightreceiver
public
void
off(
)}
(3):建立實現類lightoffcommand、lightoncommand、nocommand/**
* @author yly
* @classname lightoffcommand
* @date 2020/7/21
* @version 1.0.2
*/public
class
lightoffcommand
implements
command
@override
public
void
execute()
@override
public
void
undo()
}
/**
* @author yly
* @classname lightoncommand
* @date 2020/7/21
* @version 1.0.2
*/public
class
lightoncommand
implements
command
@override
public
void
execute()
@override
public
void
undo()
}
/**
* @author yly
* @classname nocommand 空命令用於初始化,防止空指標
* @date 2020/7/21
* @version 1.0.2
*/public
class
nocommand
implements
command
@override
public
void
undo()
}
(4):建立命令操作者remotecontroller/**
* @author yly
* @classname remotecontroller
* @date 2020/7/21
* @version 1.0.2
*/public
class
remotecontroller
}/**
* 給按鈕設定命令
** @param no 按鈕
* @param oncommand
* @param offcommand
*/public
void
setcommand
(int no, command oncommand, command offcommand)
/** * 按下開按鈕
*/public
void
onbutton
(int no)
/** * 按下關按鈕
*/public
void
offbutton
(int no)
/** * 按下撤銷按鈕
*/public
void
undobutton()
}
使用cient類來接受和執行命令/**
* @author yly
* @classname client
* @date 2020/7/21
* @version 1.0.2
*/public
class
client
}
執行結果按下燈的按鈕,操作電燈
電燈開啟了。。。
電燈關閉了。。。
電燈開啟了。。。
命令模式在spring的jdbctemplate中運用,具體的實現方法是query()方法中的statementcallback介面。
你真的會使用assert嗎?
寫這篇部落格源於在閱讀lighttpd源 是遇到的乙個關於assert應用的疑問。buffer buffer init void 這裡的assert b 似乎有問題,實際release版本在執行中難道不會發生malloc返回null的情況嗎?之後在閱讀 writing solid code 一書時找...
你真的會使用assert嗎?
寫這篇部落格源於在閱讀lighttpd源 是遇到的乙個關於assert應用的疑問。複製 複製 buffer buffer init void 複製 複製 這裡的assert b 似乎有問題,實際release版本在執行中難道不會發生malloc返回null的情況嗎?之後在閱讀 writing sol...
你真的會使用assert嗎?
寫這篇部落格源於在閱讀lighttpd源 是遇到的乙個關於assert應用的疑問。buffer buffer init void 這裡的assert b 似乎有問題,實際release版本在執行中難道不會發生malloc返回null的情況嗎?之後在閱讀 writing solid code 一書時找...