@startuml
title Objets Connectés

'''classes
class Telecommande{
    + Telecommande():
    + ajouterAppareil(Appareil):
    + activerAppareil(int):
    + desactiverAppareil(int):
    + activerTout():
    + toString(): String
}

class Lampe{
    - nom : String
    - allume : boolean
    + Lampe(String):
    + allumer():
    + eteindre():
    + toString(): String
}

class Hifi{
    - son : int
    + Hifi(String):
    + allumer():
    + eteindre():
    + toString():String
}

class Cheminee{
    -intensite : int
    +Cheminee(String):
    +changerIntensite(int i):
    +getLumiere():int
    +toString():String
}

class AdapterCheminee{
    +AdapterCheminee(Cheminee):
    +eteindre():
    +allumer():
    +toString():String
}

interface Appareil{
    +allumer():
    +eteindre():
}
'''Adapter : c'est un patron de conception qui permet à des objets incompatibles de collaborer.
'''La classe Adapter emballe les appels à un objet et les mets dans un format reconnaissable par le second objet.


'''relations
Appareil <|.. Lampe
Appareil <|.. Hifi
Appareil <|.. AdapterCheminee
Telecommande "1" -> "0..*" Appareil : - appareils
AdapterCheminee "1" -> "1" Cheminee : cheminee
@enduml