Java23種常見設計模式 06命令模式

2021-09-19 16:29:29 字數 2557 閱讀 1107

命令模式(command pattern)是一種資料驅動的設計模式,它屬於行為型模式。請求以命令的形式包裹在物件中,並傳給呼叫物件。呼叫物件尋找可以處理該命令的合適的物件,並把該命令傳給相應的物件,該物件執行命令。

將乙個請求封裝成乙個物件,從而使您可以用不同的請求對客戶進行引數化。

在軟體系統中,行為請求者與行為實現者通常是一種緊耦合的關係,但某些場合,比如需要對行為進行記錄、撤銷或重做、事務等處理時,這種無法抵禦變化的緊耦合的設計就不太合適。

在某些場合,比如要對行為進行」記錄、撤銷/重做、事務」等處理,這種無法抵禦變化的緊耦合是不合適的。在這種情況下,如何將」行為請求者」與」行為實現者」解耦?將一組行為抽象為物件,可以實現二者之間的松耦合。

通過呼叫者呼叫接受者執行命令,順序:呼叫者→接受者→命令。

降低了系統耦合度。

新的命令可以很容易新增到系統中去。

使用命令模式可能會導致某些系統有過多的具體命令類。

認為是命令的地方都可以使用命令模式,比如: 1、gui 中每乙個按鈕都是一條命令。 2、模擬 cmd。

系統需要支援命令的撤銷(undo)操作和恢復(redo)操作,也可以考慮使用命令模式,見命令模式的擴充套件。

package com.abatt.command;

/** * author:yankai

* date:2019/4/25

* time:11:00

* desc:命令介面

*/inte***ce

command

/** * author:yankai

* date:2019/4/25

* time:11:00

* desc:燈開啟

*/class

lightoncommand

implements

command

@override

public

void

execute()

@override

public

void

undo()

}/**

* author:yankai

* date:2019/4/25

* time:11:00

* desc:預設不處理,用來初始化

*/class

nocommand

implements

command

@override

public

void

undo()

}/**

* author:yankai

* date:2019/4/25

* time:10:50

* desc:燈

*/class

light

public

voidon(

)public

void

off(

)public string getname()

}/**

* author:yankai

* date:2019/4/25

* time:11:00

* desc:燈關閉

*/class

lightoffcommend

implements

command

@override

public

void

execute()

@override

public

void

undo()

}/**

* author:yankai

* date:2019/4/25

* time:11:07

* desc:控制介面

*/inte***ce

control

/** * author:yankai

* date:2019/4/25

* time:11:07

* desc:控制實現類

*/class

commandmodelcontrol

implements

control

}public

void

setcommand

(int slot, command oncommand, command offcommand)

@override

public

void

onbutton

(int slot)

@override

public

void

offbutton

(int slot)

}/**

* author:yankai

* date:2019/4/25

* time:10:49

* desc:命令模式

Java23種設計模式

定義 設計模式 design pattern 是一套反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。單例模式,特點 全域性只有乙個例項。定義 單例模式,也叫單子模式,是一種常用的軟體設計模式。在應用這個模式的時候,單例物件的類必須...

Java23種設計模式

建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。結構型模式,共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。行為型模式,共十一種 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄模 式 狀態模式 訪問者模式 中...

Java 23種設計模式

型別 模式建立型工廠模式 抽象工廠模式 單例模式 建造者模式 原型模式 結構型介面卡模式 橋接模式 組合模式 外觀模式 裝飾者模式 享元模式 模式 行為型責任鏈模式 命令模式 直譯器模式 迭代模式 中介者模式 備忘錄模式 觀察者模式 狀態模式 策略模式 模板方法模式 訪問者模式 模式說明 工廠模式 ...