Patrones de diseño - Ir modo de adaptador

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 ()

  

Supongo que te gusta

Origin www.cnblogs.com/flycc/p/12629098.html
Recomendado
Clasificación