1.什麼是命令模式
wiki: 它把在稍後執行的乙個動作或觸發的乙個事件所需要的所有資訊封裝到乙個物件中。2.例項
例如假如有乙個萬能遙控可以對任何東西發出任何命令3.程式示例
public
inte***ce
command
/**
* 目標
*/public
inte***ce
target
/**
* 電視類
*/public
abstract
class
tvtarget
implements
target
@override
public string gettargetname()
public
boolean
ison()
protected
void
settvon
(boolean tvon)
protected
void
settvname
(string tvname)
/** * 切換頻道
* 實際中不同品牌切換頻道的邏輯並不相同
*/public
void
changechannel
(int channelnum)
else
}public
void
refreshchannel()
/** * 返回上乙個頻道
*/public
void
returnleastchannel()
else}}
public
class
extends
tvtarget
public
void
turnon()
public
void
turnoff()
}
public
class
changechannelcommand
implements
command
@override
public
void
docommand
(target target)
@override
public
void
redocommand()
@override
public
void
undocommand()
}
/**
* 萬能遙控器
* 可以控制電視、洗衣機、冰箱、空調...
*/public
class
amazingremotecontrol
//撤回
public
void
undocommand()
}// 再次執行
public
void
redocommand()
}}
@test
public
void
test()
已切換到10頻道~4.總結已切換到20頻道~
重新整理20頻道成功~
返回上乙個頻道:已切換到10頻道~
已切換到30頻道~
重新整理30頻道成功~
返回上乙個頻道:已切換到10頻道~
命令模式將命令和執行命令的例項解耦,使系統的擴充套件更加靈活,並借助列表實現了命令的再次執行和撤回。
設計模式原來這麼簡單 狀態模式
1.什麼是狀態模式wiki 狀態模式是一種允許物件在內部狀態改變時改變它的行為的行為型設計模式。2.示例假如當前有乙個任務,任務的狀態有待審核 審核通過 審核失敗 建立任務預設時待審核狀態 3.程式例項public inte ce istate public abstract class bases...
設計模式原來這麼簡單 裝飾器模式
1.什麼是裝飾器模式wiki 允許將行為靜態或動態地新增到單個物件中,而不會影響同一類中其他物件的行為。2.例項 以前用的qq秀,需要為角色穿不同的衣服 頭飾 臉飾 上衣 褲子。不同的衣服展示不同的形象,而且還可以 根據形象的炫酷值和好友pk。3.程式示例 qq秀角色 public inte ce ...
設計模式原來這麼簡單 介面卡模式
1.不適用介面卡 航行 public class hangxing 划槳 public class huajiang 只會說啟航並不划槳的老船長 public class chuanzhang 開始冒險 public void startadventures 小明船長按照慣例揚帆起航,而船卻紋絲不動...