适配器模式,不谢
10liuguang01 opened this issue · 1 comments
10liuguang01 commented
`
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)
}
`
senghoo commented
看了一下,楼主提交例子只是可以把classB 适配为InterA 针对于具体的类适配成了另一种接口。
示例当中的适配器是完成Adaptee接口到Target接口的适配。
不能说是哪一种是错的吧。