Java設計模式 命令模式

2021-06-09 14:47:42 字數 1467 閱讀 4431

命令模式定義:命令模式通過被稱為command的類封裝了對目標物件的呼叫行為以及呼叫引數。將乙個請求封裝稱為乙個命令,從而使你不同的請求對客戶進行引數化;隊請求排隊或記錄請求日誌,以及支援可撤銷的操作。

優點:解耦了呼叫者與接受者之間的聯絡。呼叫者呼叫乙個操作,接受者接受請求執行相應的動作,因為使用命令模式解耦,呼叫者無需知道接受者任何藉口。

缺點:造成出現過多的具體命令類。

可以模擬的例子如:遙控器操縱電視機,各個操作電視機的命令(下面demo中的nocommand、offcommand、oncommand);遙控器,承載各種命令(invoker);人,操控遙控器來實現對各種命令的呼叫(test)。

下面實現了乙個command模式的demo

command介面

package test;

public inte***ce command

nocommand類:command介面實現類1

package test;

public class nocommand implements command

@override

public void undo()

}

offcommand類:command介面實現類2

package test;

public class offcommand implements command

@override

public void execute()

@override

public void undo()

}

oncommand類:command介面實現類3

package test;

public class oncommand implements command

@override

public void execute()

@override

public void undo()

}

invoker類:遙控器

package test;

public class invoker

public void setcommand(command c)

public void pressbutton()

public void undopress()

}

test測試類:人

package test;

public class test

}

輸出結果:

light off pressbutton:off

light off undopress:on

java設計模式 命令模式

1.概念 將來自客戶端的請求傳入乙個物件,從而使你可用不同的請求對客戶進行引數化。用於 行為請求者 與 行為實現者 解耦,可實現二者之間的松耦合,以便適應變化。分離變化與不變的因素。在物件導向的程式設計中,乙個物件呼叫另乙個物件,一般情況下的呼叫過程是 建立目標物件例項 設定呼叫引數 呼叫目標物件的...

JAVA設計模式 命令模式

命令模式,又稱為行動 action 模式 交易 transaction 模式,是一種行為型設計模式。命令模式的思想是 把乙個請求或者操作封裝到乙個物件中,允許系統使用不同的請求把客戶端引數化,從而實現對請求排隊或者記錄請求日誌 提供命令的撤銷和恢復功等能。命令模式涉及5個角色 結構圖 具體 實現 接...

java設計模式 命令模式

package com.hcmony.command author hcmony since v1.0.0,2018 04 09 17 18 public inte ce commandinteface package com.hcmony.command author hcmony since v...