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