12 Diagramme_de_classes
Nicolas BLONDEAU edited this page 2 years ago

Diagramme de classe

@startuml
class User {
 + Pseudo { get; private set; } : string
 - Nom { get; private set; } : string
 - Prenom { get; private set; } : string
 - Mdp { get; set; } : string
 - monstresDejaVu { get; private set; } : List<Monstre>
 + User( pseudo : string, nom : string, prenom : string, mdp : string, monstresVus : List<Monstre>)
 + verifyPssw( pssw : string ) : bool
}

class Monstre {
 + Id { get; set; } : int
 + Name { get; set; } : string
 + Dangerosite {get; private init; } : string
 + Description { get; set; } : string
 + CharacteristicsList { get; init; } : List<string>
 + AppearanceList { get; init; } : List<string>
 + ImageLink { get; init ; } : string
 + ListConseils { get; set; } : ObservableCollection<Conseil>
 + Monstre( id : int, name : string, desc : string, characList : List<string>, appearList : List<string>)
 + ToString() : string
 + Equals(object? obj) : bool
 + GetHashCode() : int
} 

class Conseil {
 + idConseil : int { get; }
 + auteur : string { get; }
 + texte : string { get; private set; }
 + monstre : Monstre { get; set; }
 + Conseil( auteur : User, texte : string, leMonstre : Monstre )
 + affichConseil() : void
}

class UserManager {
 + addUser(user : User) : void
 + removeUser(user : User) : void
 + saveUsers() : int
 + loadUsers() : int
 + UserManager(dMngr : IUserDataManager)
}

class MonsterManager {
 + saveMonsters() : int
 + loadMonsters() : int
 + MonsterManager(dMngr : IMonsterDataManager)
}

interface IUserDataManager {
 + writeUsers( users : List<User> ) : void
 + readUsers() : List<User>
}

interface IMonsterDataManager {
 + writeMonsters( monstres : List<Monstre> ) : void
 + readMonsters() : List<Monstre>
}

class LoaderXML {
 + writeUsers( users : List<User> ) : void
 + readUsers() : List<User>
 + writeMonsters( monstres : List<Monstre> ) : void
 + readMonsters() : List<Monstre>
}

class LoaderJSON {
 + writeUsers( users : List<User> ) : void
 + readUsers() : List<User>
 + writeMonsters( monstres : List<Monstre> ) : void
 + readMonsters() : List<Monstre>
}

class LoaderStub {
 + readUsers() : List<User>
 + readMonsters() : List<Monstre>
}


Monstre <-- MonsterManager : *+ Monstres : List<Monstre>
User <-- UserManager : *+ Users : List<User>

IUserDataManager <-- UserManager : +/UserPers
IUserDataManager <|.. LoaderXML
IUserDataManager <|.. LoaderJSON
IUserDataManager <|.. LoaderStub

IMonsterDataManager <-- MonsterManager : +/MonsterPers
IMonsterDataManager <|.. LoaderXML
IMonsterDataManager <|.. LoaderJSON
IMonsterDataManager <|.. LoaderStub

User <.. Stub
Monstre <.. Stub

Conseil <-- User : * listConseils : List<Conseil>
Monstre <-- User : * monstresDejaVu : List<Monstre>
@enduml
Table of Contents