0
点赞
收藏
分享

微信扫一扫

Go # 设计模式(一)


接口,私有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
}


举报

相关推荐

0 条评论