设计模式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()
}

总结

此模式主要是对实际的命令执行进行抽象与请求解耦,请求逻辑封装成对象可以改变,当请求逻辑变化后不影响执行逻辑。

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