Design Patterns Go - mode adaptateur

Adaptateur: est un exemple d'une classe peut être mis en œuvre par une fonction qui ne adaptateur fonctionne pas

Adapter Package d' 

importation ( 
	"FMT" 
) 

struct type {// ChargeHeadB la tête de charge B 

} 

FUNC (la présente ChargeHeadB *) ChargeB () { 
	fmt.Println ( "Head B CHARGE PRÊT à ...") 
} de 

type struct {ChargeIfC / / C adaptateur d' interface 
	TypeB // adaptateur B 
} 

type d' interface TypeB { 
	ChargeB () 
} 

FUNC NewHead () {TypeB 
	retour & ChargeHeadB {} 
} 

FUNC (la présente ChargeIfC *) ChargeB () {// C pour l'adaptateur à un C de-charge 
	this.ChargeC () 
} 

FUNC (la présente ChargeIfC *) ChargeC () { 
	fmt.Println ( "charge TypeC iS ...") 
} 

FUNC AdaptBtoC (B TypeB) TypeB { 
	return {& ChargeIfC 
		TypeB: B, 
	} 
}

  

	b: = adapt.NewHead () // Création d' une nouvelle tête de chargement B 
	C: = adapt.AdaptBtoC (B) 
	c.ChargeB ()

  

Je suppose que tu aimes

Origine www.cnblogs.com/flycc/p/12629098.html
conseillé
Classement