模版方法
发布时间 :
阅读 :
Template Pattern
模版方法设计模式允许把对象不同的部分抽象,在同一段代码中执行相同的逻辑,增加可拓展性。在Go语言中,实现由底层对象实现,而行为由顶层方法控制。
实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| package template
import "fmt"
type Tmpl interface{ DoSomething() DoAnything() }
type TmplA struct{
}
func (this *TmplA)DoSomething(){ fmt.Println("TmplA.DoSomething") }
func (this *TmplA)DoAnything(){ fmt.Println("TmplA.DoAnything") }
type TmplB struct{
}
func (this *TmplB)DoSomething(){ fmt.Println("TmplB.DoSomething") }
func (this *TmplB)DoAnything(){ fmt.Println("TmplB.DoAnything") }
func Operate(tmpl Tmpl){ tmpl.DoSomething() tmpl.DoAnything() }
|
使用
1 2 3 4 5 6 7 8 9 10 11 12 13
| package main
import ( "projects/DesignPatternsByGo/behavioralPatterns/template" )
func main() { a := template.TmplA{} b := template.TmplB{} template.Operate(&a) template.Operate(&b)
}
|
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件