From 4ef24e304b6054a4fba3a655ab93c22eabaa5298 Mon Sep 17 00:00:00 2001 From: Corentin LEMAIRE Date: Thu, 1 Jun 2023 16:23:22 +0200 Subject: [PATCH] Add explanations about class diagram --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e8277d4..8db7868 100644 --- a/README.md +++ b/README.md @@ -481,6 +481,11 @@ IDataManager .. Genre @enduml ``` +# Note + +*Les classes CustomTitle, Playlist et Manager héritent de l'interface INotifyPropertyChanged afin de permettre le DataBinding de ces classes* + + ### Explications #### Album @@ -511,13 +516,16 @@ Hormis les attributs hérités, cette classe possède un attribut path (chemin) #### Playlist -Cette classe possède une structure similaire à la classe **Album**. Elle contient des titres personnalisés (**CustomTitle**). Les morceaux sont joués dans un ordre -précis (du premier jusqu'au dernier). +Cette classe possède une structure similaire à la classe **Album**. Elle contient des titres personnalisés (**CustomTitle**). Les morceaux sont joués dans un ordre précis (du premier jusqu'au dernier). Cette classe hérite des attributs de Title. Cette classe permet la gestion des playlists, soit l'accès à la musique suivante, précédente en fonction de la demande de l'utilisateur (en boule, aléatoire). Cela permet une lecture de musiques d'une playlist en boucle sans problème. + + +### Manager +Notre classe manager est une interface entre le code-behind et les vues. Il permet de gérer les données grâce au DataManager et de gérer les fonctionnalités de l'application comme les playlists. Cette interface fonctionne avec le parton de conception de façade, étant une interface, un point d'entrée de l'application vers le modèle. De plus, nous utilisons un deuxième patron de conception, qui est la stratégie, avec une injection de dépendance par le constructeur de la classe. En effet, afin de créer un Manager, il faut joindre la méthode de sérialisation (stubs ou LINQ dans notre cas). #### LinqXmlSerialization -Notre sérialisation fonctionne avec lecture/écriture dans des fichiers XML. Pour cela, nous utilisons la bibliothèque *LINQ_XML* qui nous permet de créer et de modifier les différents fichiers. +Notre sérialisation fonctionne avec lecture/écriture dans des fichiers XML. Pour cela, nous utilisons la bibliothèque *LINQ_XML* qui nous permet de créer et de modifier les différents fichiers. Pour la sérialisation des CustomTitle et des Playlists nous utilisons le LINQ. Cependant, pour les classes InfoTitle, Artist et Albums, ces données sont récupérées des Stubs, étant statiques et à but informatif. Cette sérialisation a été testée et approuvée sur Windows et Android. ## Diagramme de paquetage