@startuml
interface Boisson{
+getCost(): double
+getIngredients(): String
}
abstract class BoissonEtPlus{
-aDecorer: Boisson
+BoissonEtPlus(b: Boisson)
}
class Expresso{
}
class AvecLait{
+AvecLait(b: Boisson)
}
class Double{
+Double(b: Boisson)
}

class Thé{
+Thé(b: Boisson)
}

class CorrigerBoisson{
+ajoutGoutte()
}

Boisson <|- BoissonEtPlus
Expresso --|> Boisson
Thé --|> Boisson
AvecLait --|> BoissonEtPlus
Double --|> BoissonEtPlus
CorrigerBoisson -|> Boisson

@enduml