Nantes Université

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 dans Address.
  • Tester le bon fonctionnement de la reférence de Address dans Client.
  • Tester la suppression de chaque référence.
  • Tester le changement de reference pour chaque reference.
  • Tester le handshake entre Client et Address.

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 ReferenceToOnequi héritera deReference. Elle contiendra les méthodes suivantes:
      • set()
      • get()
      • basicSet()
      • basicUnset()
    • Création d'une interface OneToOneAssociation qui implémente ReferenceToOne qui contient la méthode oppositeReferenceFor(). Celle-ci retourne la référence opposé.
    • Création d'une classe Abstraite AbstractOneToOneAssociation qui implémente l'interface OneToOneAssociation
    • Création d'une classe concrète BidirectionalOneToOne qui hérite de AbstractOneToOneAssociation. Cette classe doit-être générique et utilisable pour la réalisation d'autres associations bidirectionnelles mono-valuées.

Dans l'implémentation, l'utilisation de lambda expression et Function sera utile