适配器模式
适配器模式
被适配目标接口
package adapter
type source  interface {
    SpecificRequest() string
}
被适配的目标
package adapter
type sourceImpl struct {}
func NewSourceImpl() source {
    return &sourceImpl{}
}
func (a *sourceImpl)SpecificRequest() string {
    return "adapter message"
}
适配的目标接口
package adapter
type target interface {
    Request() string
}
适配的目标
package adapter
type targetImpl struct {
    source
}
func NewTargetImpl(a source) target {
    return &targetImpl{source:a}
}
func (t *targetImpl)Request() string {
    return t.source.SpecificRequest()
}
使用者
package adapter
type User struct{
    tg target
}
func NewUser(tg target) *User {
    return &User{tg:tg}
}
func (u *User)getResult() {
    fmt.Println(u.tg.Request())
}
测试文件
package adapter
func TestAdapter(t *testing.T) {
    a := NewSourceImpl()
    tg := NewTargetImpl(a)
    u := NewUser(tg)
    u.getResult()
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号