能够根据访问对象的身份或行为,给出不同的处理逻辑
package main
import "log"
// Visitor
// 访客模式,故名思意,能够明确知道访客的身份和行为
// 如示例中WeiBoVisitor 能够明确告知访问者的身份
// 能够根据访问对象的身份或行为,给出不同的处理逻辑
type IVisitor interface {
Visit()
}
type WeiBoVisitor struct {
}
func (w WeiBoVisitor) Visit() {
log.Println("Visit WeiBo")
}
type IqiyiVisitor struct {
}
func (i IqiyiVisitor) Visit() {
log.Println("Visit IQIYI")
}
type IElement interface {
Accept(visitor IVisitor)
}
type Element struct {
}
func (e Element) Accept(v IVisitor) {
v.Visit()
}
func main() {
e := &Element{}
e.Accept(&WeiBoVisitor{})
e.Accept(&IqiyiVisitor{})
}
发表回复