設計模式golang-命令模式

命令模式

定義

將一個請求封裝爲一個對象,從而使我們可用不同的請求對客戶進行參數化;對請求排隊或者記錄請求日誌,以及支持可撤銷的操作。命令模式是一種對象行爲型模式,其別名爲動作(Action)模式或事務(Transaction)模式。

角色

1.命令抽象接口

2.請求結構體

例子

一個盒子上的按鈕執行

//命令抽象接口
type Command interface {
	Execute()
}
//請求結構體
type Box struct {
	buttion1 Command
	buttion2 Command
}
//抽象請求對象
func NewBox(buttion1, buttion2 Command) *Box {
	return &Box{
		buttion1: buttion1,
		buttion2: buttion2,
	}
}
//封裝命令執行函數
func (b *Box) PressButtion1() {
	b.buttion1.Execute()
}
//封裝命令執行函數
func (b *Box) PressButtion2() {
	b.buttion2.Execute()
}

總結

此模式主要是對實際的命令執行進行抽象與請求解耦,請求邏輯封裝成對象可以改變,當請求邏輯變化後不影響執行邏輯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章