senghoo/golang-design-pattern

适配器模式,不谢

10liuguang01 opened this issue · 1 comments

`
type InterA interface {
DoA()
}

type classA struct{}

func (a classA) DoA() {
fmt.Println("do a thing")
}

func OutDoDo(a InterA) {
a.DoA()
}

// code above is original function. now you want OutDoDO do what classB do, so adapter works

type classB struct{}

func (b classB) DoB() {
fmt.Println("do b thing")
}

type adapter1 struct{}

func (ad adapter1) DoA() {
b := classB{}
b.DoB()
}

// test
func TestAdapterOutDoDo(t *testing.T) {
ad := adapter1{}
OutDoDo(ad)
}
`

看了一下,楼主提交例子只是可以把classB 适配为InterA 针对于具体的类适配成了另一种接口。
示例当中的适配器是完成Adaptee接口到Target接口的适配。
不能说是哪一种是错的吧。