Bonjour à tous,
Je ne sais pas si c'est mieux de poster cette question sur le forum de Conception ou ici, mais comme il est question d'interface et que ce n'est pas applicable à tous les langages, je vais la poser ici.
Je dois écrire un programme qui gère des utilisateurs, et ces utilisateurs peuvent se connecter au système avec une licence. Il existe 3 types de licence.
J'imagine donc ici une classe Utilisateur qui contiendra une (et une seule) licence.
Étant donné qu'il existe trois types de licences, je crois que je dois abstraire et me créer une classe abstraite / interface Licence. Mes trois types de licence hériteront de cette classe abstraite / interface. Je pourrai donc créer une licence d'un type précis pour chaque utilisateur, et du même coup, je n'ai pas à me soucier du type de licence si je dois toutes les mettre dans une collection.
Mon problème à l'heure actuelle est que j'ai du mal à différencier classe abstraite et interface, à part le fait qu'une interface oblige une implémentation de la part des classes qui s'en servent. (Bref, une classe qui implémente une interface n'HÉRITE pas vraiment mais implémente).
J'aimerais juste savoir dans quel(s) cas il est mieux de créer des classes abstraites. Dans ce cas-ci, je ne suis vraiment pas certain.
Merci de votre aide.
Partager