go知识重新整理

This commit is contained in:
Estom
2021-09-03 05:34:34 +08:00
parent 62309f856a
commit 1bad082e49
291 changed files with 29345 additions and 2 deletions

View File

@@ -0,0 +1,41 @@
package adapter
//适配器模式
//应用最多的是在接口升级,而又需要保证老接口的兼容性,为了让老接口能够继续工作,所以提供了一个中间层,让老接口对外的接口不变
//但是实际上调用了新的代码
//被适配接口的工厂函数
func NewAdaptee() Adaptee {
return &adapteeImpl{}
}
//被适配的目标接口
type Adaptee interface {
SpecificRequest() string
}
type adapteeImpl struct {
}
func (*adapteeImpl) SpecificRequest() string {
return "adaptee method被适配器方法"
}
func NewAdapter(adaptee Adaptee) Target {
return &adapter{
Adaptee: adaptee,
}
}
//Target是适配的目标接口
type Target interface {
Request() string
}
type adapter struct {
Adaptee
}
func (a *adapter) Request() string {
return a.SpecificRequest()
}

View File

@@ -0,0 +1,20 @@
/**
* @Author:zhoutao
* @Date:2020/12/11 下午1:52
* @Desc:
*/
package adapter
import "testing"
var expect = "adaptee method被适配器方法"
func TestAdapter(t *testing.T) {
adaptee := NewAdaptee()
target := NewAdapter(adaptee)
res := target.Request()
if res != expect {
t.Fatalf("expect %s,return %s", expect, res)
}
}