Adaptador: es un ejemplo de una clase puede implementar una función que no hace la función de adaptador
Adaptar paquete de importación ( "FMT" ) tipo struct {// ChargeHeadB la unidad de carga B } FUNC (el presente ChargeHeadB *) ChargeB () { fmt.Println ( "Cabeza B CARGA listo para ...") } tipo ChargeIfC struct {/ / C interfaz de adaptador TypeB // adaptador B } tipo de interfaz TypeB { ChargeB () } FUNC NewHead () TypeB { return & ChargeHeadB {} } FUNC (el este ChargeIfC *) ChargeB () {// C para el adaptador a un C de-carga this.ChargeC () } FUNC (el presente ChargeIfC *) ChargeC () { fmt.Println ( "carga TypeC es ...") } FUNC AdaptBtoC (B Tipo B) TypeB { retorno {& ChargeIfC TypeB: B, } }
b: = adapt.NewHead () // Crear un nuevo cabezal de carga B C: = adapt.AdaptBtoC (B) c.ChargeB ()