一个接口有多少分配给它的功能有什么问题吗?
在我读到的任何地方,接口理想情况下应该只有一个方法(接口应该以之后命名).但是,对于接口有多种方法,是否有任何陷阱?防爆.
type FooMgrInterface interface {
CreateFoo(hostname string, fooConfig interface{}) (uuid string, err error)
DeleteFoo(hostname string, fooID string) (err error)
CreateBar(hostname string, barID string, barConfig interface{}) (uuid string, err error)
DeleteBar(hostname string, barID string) (err error)
AttachBar(hostname string, fooID string, bars []string) (err error)
DetachBar(hostname string, barID string) (err error)
GetBars(hostname string) (bars []Bar, err error)
GetBar(hostname string, barID string) (bar Bar, err error)
GetFoo(hostname string, fooID string) (foo Foo, err error)
GetFoos(hostname string) (foos []Foo, err error)
}
Run Code Online (Sandbox Code Playgroud)
如果是这样,上面的接口如何简化或(可能)分成多个接口?
它没有任何问题,因为语言支持它就好了.
我相信作者根据经验提供建筑建议.具体来说,如果您的界面有很多方法,那么您可能在某处有错误的抽象.
您可以问自己一些澄清问题:
NewFoo(owner FooMgrInterface) *Foo