From 12fdc3747fa991e9b7429865ffc80b705cb08f96 Mon Sep 17 00:00:00 2001 From: Lou BRODA Date: Sun, 22 Oct 2023 15:40:00 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a086a15..7fb0d0c 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ BaseViewModel --|> ObservableObject RelayCommand ..|> ICommand ``` -Cette strcuture est une version remplaçant pour le moment le `Community Toolkit` mis en place par Microsoft qui permet aussi de supprimer beaucoup de code inutile en remplaçant celui-ci par des annotations et des classes partielles. +Cette structure est une version remplaçant pour le moment le `Community Toolkit` mis en place par Microsoft qui permet aussi de supprimer beaucoup de code inutile en remplaçant celui-ci par des annotations et des classes partielles. --- @@ -115,6 +115,86 @@ Le schéma suivant montre bien les relations entre les grandes parties du `patro Le **diagramme de classes** pouvant être extrèmement grand à cause des multiples classes au sein de notre projet, j'ai décidé de représenter une partie de celui-ci qui pourrait se répéter pour toutes les autres parties. L'objectif principal étant de comprendre comment fonctionne le **modèle MVVM** et comment les classes intéragissent entre elles, j'ai choisi de faire mon exemple avec la partie des livres qui est la plus générale du sujet. +```mermaid +classDiagram + class Book { + Id: string + Title: string + Publishers: List + PublishDate: DateTime + ISBN13: string + Series: List + NbPages: int + Format: string + Language: Languages + Contributors: List + ImageSmall: string + ImageMedium: string + ImageLarge: string + Works: List + Authors: List + Status: Status + UserTags: List + UserRating: float? + UserNote: string + Equals(other: Book): bool + GetHashCode(): int + } + + class DetailsLivreView { + DetailsLivreVM: DetailsLivreVM + } + + class DetailsLivreVM { + isPickerVisible: bool + addFavorisButtonText: string + Manager: ManagerVM + Navigator: NavigatorVM + Book: BookVM + IsPickerVisible: bool + AddFavorisButtonText: string + BackButtonCommand: ICommand + ShowPickerCommand: ICommand + AddRemoveBookToFavoritesCommand: ICommand + AddBookToReadListCommand: ICommand + LoanBookCommand: ICommand + RemoveBookCommand: ICommand + OpenInfoCommand: ICommand + BackButton() + ShowPicker() + AddRemoveBookToFavorites(bookVM: BookVM) + AddBookToReadList(bookVM: BookVM) + LoanBook(bookVM: BookVM) + RemoveBook(bookVM: BookVM) + OpenInfo() + } + + class BookVM { + Id: string + ISBN13: string + Title: string + Publishers: List + PublishDate: DateTime + Works: List + WorkDescription: string + Authors: List + Author: string + Status: Status + NbPages: int + Language: Languages + ImageSmall: string + UserRating: float? + } + + DetailsLivreView --> DetailsLivreVM + DetailsLivreVM --> BookVM + DetailsLivreVM --> ManagerVM + DetailsLivreVM --> NavigatorVM + BookVM --> Book + BookVM --> WorkVM + BookVM --> AuthorVM +``` + *******