模版方法

  1. Template Pattern
  2. 实现

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)

}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件