- 原有代码
type Api interface {
Action() string
Action1() string
}
type defaultApi struct {
}
func (d *defaultApi) Action() string {
// 一大堆代码,很麻烦,不便于修改
panic("implement me")
}
func (d *defaultApi) Action1() string {
// 一大堆代码,很麻烦,不便于修改
panic("implement me")
}
- 自定义代码
type MyCustomApi struct {
Api
// 需要的字段
}
func (d *MyCustomApi) Action() string {
// 自定义逻辑,前置逻辑
// 调用未变更的api
result := d.Api.Action()
// 自定义逻辑,后置逻辑
return result
}