1-Dans un premier temps, nous avons les classes modèle de l'application, telles que Strategie, Champion et Ability.
Ces trois classes sont interconnectées, avec Ability étant agrégée dans Champion et Champion étant agrégé dans Strategie.

Nous avons également la classe Utilisateur, qui représente un utilisateur de l'application.
Cette classe permet à un utilisateur de créer un compte et de le sauvegarder dans la base de données.
Elle permet également à l'utilisateur de créer ou de supprimer une stratégie.



2-Il existe aussi la classes de gestion ici Manager.

Manager comprend une liste de champions et une liste d'utilisateurs qui permettent le bon fonctionnement de l'application.
La classes joue le role de gestionnaire et permet le login et enregistrement d'utilisateur.



3-Et enfin les trois classes et l'interface suivante sont les clases d'infrastructure :
DataContract : Elle joue le rôle de gestionnaire de persistance des données en utilisant la sérialisation pour charger et sauvegarder les objets (Liste<Champion> et Liste<Utilisateur>) dans des fichiers spécifiés.

DataToPersist : C'est une classe de modèle de données qui regroupe les objets Champion et Utilisateur dans des listes pour faciliter leur gestion et leur utilisation.

Stub : Cette classe fournit une implémentation de base pour la gestion de la persistance des données des champions et des utilisateurs.
Elle permet de charger des données simulées et offre un point d'extension pour ajouter la logique de sauvegarde des données.

IPersistanceManager: Cette Interface définit les opérations de base pour charger et sauvegarder les données des champions et des utilisateurs.
Elle est utilisée par la classe Manager et dépend de Stub et DataContract.