代码位置:k8s.io/apimachinery/pkg/runtime/serializer/recognizer
typical case
recognizer.decoder
带有修饰器模式
tree-like
code
因为 recognizer.decoder 实现了 recognizer.RecognizingDecoder 和 runtime.Decoder 接口,所以 recognizer.decoder 可以是本身的子节点。
recognizer.RecognizingDecoder
type RecognizingDecoder interface {runtime.DecoderRecognizesData(peek io.Reader) (ok, unknown bool, err error)}
recognizer.decoder
type decoder struct {decoders []runtime.Decoder}
decoder.NewDecoder
func NewDecoder(decoders ...runtime.Decoder) runtime.Decoder {return &decoder{decoders: decoders,}}
