接口,私有struct与构造函数(真的是个函数),实现在Java中接口+类同样的功能;
package main
type SharedInformer interface {
Shard(something string) (string,error)
Informer(something string) (string,error)
}
type SharedIndexInformer interface {
SharedInformer
Indexer(something string) (string,error)
}
// NewSharedInformer creates a new instance for the listwatcher.
func NewSharedInformer(somethingShard string,somethingInformer string) SharedInformer {
return NewSharedIndexInformer(somethingShard, somethingInformer, "")
}
// NewSharedIndexInformer creates a new instance for the listwatcher.
func NewSharedIndexInformer(somethingShard string,somethingInformer string,somethingIndexer string) SharedIndexInformer {
sharedIndexInformer := &sharedIndexInformer{
somethingShard: somethingShard,
somethingInformer: somethingInformer,
somethingIndexer: somethingIndexer,
}
return sharedIndexInformer
}
type sharedIndexInformer struct {
somethingShard string
somethingInformer string
somethingIndexer string
}
func (s *sharedIndexInformer) Shard(something string) (string,error) {
return "shardSomething",nil
}
func (s *sharedIndexInformer) Informer(something string) (string,error) {
return "informSomething",nil
}
func (s *sharedIndexInformer) Indexer(something string) (string,error) {
return "indexSomething",nil
}