設計模式原來這麼簡單 命令模式

2021-10-12 09:37:12 字數 2002 閱讀 4871

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頻道~

已切換到20頻道~

重新整理20頻道成功~

返回上乙個頻道:已切換到10頻道~

已切換到30頻道~

重新整理30頻道成功~

返回上乙個頻道:已切換到10頻道~

4.總結

命令模式將命令和執行命令的例項解耦,使系統的擴充套件更加靈活,並借助列表實現了命令的再次執行和撤回。

設計模式原來這麼簡單 狀態模式

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 小明船長按照慣例揚帆起航,而船卻紋絲不動...