Mettre en place l'association bidirectionnelle Address — Client
📢 Description du problème
Assurer le fonctionnement de l'association birectionnelle entre les classes Address
et Client
.
👮 Test à réaliser
-
Tester le bon fonctionnement de la reférence de Client
dansAddress
. -
Tester le bon fonctionnement de la reférence de Address
dansClient
. -
Tester la suppression de chaque référence. -
Tester le changement de reference pour chaque reference. -
Tester le handshake
entreClient
etAddress
.
✔ Solutions
La résolution de ce problème se fait en deux temps:
- Ecriture des tests unitaires
- Implémentation de l'association bidirectionnelle. On privilégiera l'utilisation de classe générique pour faciliter les futures opérations de maintenance
- Création d'une interface
Reference
contenant uniquement les méthodes-
isSet()
: Vérifie si une association est définie - et
unset()
: supprimer une association
-
- Création d'une interface
ReferenceToOne
qui héritera deReference
. Elle contiendra les méthodes suivantes:set()
get()
basicSet()
basicUnset()
- Création d'une interface
OneToOneAssociation
qui implémenteReferenceToOne
qui contient la méthodeoppositeReferenceFor()
. Celle-ci retourne la référence opposé. - Création d'une classe Abstraite
AbstractOneToOneAssociation
qui implémente l'interfaceOneToOneAssociation
- Création d'une classe concrète
BidirectionalOneToOne
qui hérite deAbstractOneToOneAssociation
. Cette classe doit-être générique et utilisable pour la réalisation d'autres associations bidirectionnelles mono-valuées.
- Création d'une interface
Dans l'implémentation, l'utilisation de lambda expression et Function sera utile