模版模式真的是一个好东西。所谓模版模式,就是说,某几个类中相同的操作和代码提取到父类的一个函数中,并定义相同的操作为抽象函数。由子类来实现。估计我也没表达清楚,下面还是看代码来讲解吧。
例:我们有两个文档处理程序,一个处理本地数据,一个处理网络数据。这两个类的功能和执行步骤高度类似,但是,获取数据的方式不同。在这两个类中势必存在大量结构相同的代码。现在,我们使用模版模式来重构这两个类。
1.定义父类,在父类中定义实现的具体函数和一个等待子类实例化的“抽象函数”
package doc
import "fmt"
type DocSuper struct {
GetContent func() string
}
func (d DocSuper) DoOperate() {
fmt.Println("对这个文档做了一些处理,文档是:", d.GetContent())
}
我们把这两个类,提取出一个父类,DocSuper。这个类中有两个函数,一个具体的函数,DoOperate,用来做实际的操作。一个抽象函数,