Bonjour à tous,
Dans l'application Web que je développe, j'avais déjà mis en place un système de connexion pour accéder à un espace membre (accessible seulement aux Membre donc).
J'ai ensuite développé un back-office, qui est lui-aussi un espace sécurisé accessible seulement par des admin.
Les admin et les membres ont quelques champs en commun (identifiant, mot de passe, adresse mail), et le système de connexion est le même. C'est juste qu'on y accède pas par le même lien sur la page et qu'il ne redirige pas au même endroit si c'est un membre ou un admin qui se connecte.
Du coup, j'ai une entité Membre, une entité Admin, et je les ai fait hérité d'une classe abstraite Personne dans laquelle j'ai déclaré les accesseurs sur l'id, le mot de passe et l'email.
C'est ce qui me permet d'utiliser le même service d'identification : le service renvoie une Personne et je sais si c'est un Membre ou un Admin en fonction du contexte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public abstract class Personne extends DomainObject { private static final long serialVersionUID = 1L; public abstract String getIdentifiant(); public abstract void setIdentifiant(String identifiant); public abstract String getPassword(); public abstract void setPassword(String password); public abstract String getEmail(); public abstract void setEmail(String email); }
ça marche très bien, mais en y réfléchissant ce matin, je me suis demandée si utiliser une interface à la place de la classe abstraite aurait pas été mieux (niveau bonnes pratiques) : j'ai souvent lu sur les forums que les gens évitent autant que possible l'héritage et préfèrent les interfaces...
Du coup je vous pose la question, dans un cas comme ça, est ce plus logique d'utiliser l'héritage avec une classe abstraite ou d'utiliser une interface? et surtout, pourquoi?
Merci d'avance pour vos points de vu![]()
Partager