域名暂无法进行网站备案做交易网站什么开发语言
web/
2025/9/28 16:08:30/
文章来源:
域名暂无法进行网站备案,做交易网站什么开发语言,wordpress中文博客,腾讯云网站制作教程装饰模式使用对象组合的方式动态改变或增加对象行为。
Go语言借助于匿名组合和非入侵式接口可以很方便实现装饰模式。
使用匿名组合#xff0c;在装饰器中不必显式定义转调原对象方法。
decorator.go
package decoratortype Component interface {Calc() int
}type Concre…装饰模式使用对象组合的方式动态改变或增加对象行为。
Go语言借助于匿名组合和非入侵式接口可以很方便实现装饰模式。
使用匿名组合在装饰器中不必显式定义转调原对象方法。
decorator.go
package decoratortype Component interface {Calc() int
}type ConcreteComponent struct{}func (*ConcreteComponent) Calc() int {return 0
}type MulDecorator struct {Componentnum int
}func WarpMulDecorator(c Component, num int) Component {return MulDecorator{Component: c,num: num,}
}func (d *MulDecorator) Calc() int {return d.Component.Calc() * d.num
}type AddDecorator struct {Componentnum int
}func WarpAddDecorator(c Component, num int) Component {return AddDecorator{Component: c,num: num,}
}func (d *AddDecorator) Calc() int {return d.Component.Calc() d.num
}decorator_test.go
package decoratorimport fmtfunc ExampleDecorator() {var c Component ConcreteComponent{}c WarpAddDecorator(c, 10)c WarpMulDecorator(c, 8)res : c.Calc()fmt.Printf(res %d\n, res)// Output:// res 80
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83412.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!