12 Diagramme de classe
Audric SABATIER edited this page 3 years ago
classDiagram
    Controller -- User

    class User{
        - idDafl : int
        - usernameDafl : string
        - nameDafl : string
        - passwDafl : string
        - usernameAPI : string
        - passwAPI : string
        - likedUser : Set<User>
        - conversations : Map<User, Conversation>
        
        +like(liked : User)
        +chat(recipient : User, content : String)
    }

    
    class Conversation{
      - messages : List<Message>
      - firstUser : User
      - secondUser : User
      
      +addMessage(User sender,String content)
    }
    
    class Message{
    	- sender : User
        - content : string
    }
    
    
    
    class ApiManager{
    	
    }
    
    class Loader{
    	+load() * : User 
    }
    
    class Saver{
    	+save(userToSave : User) *
    }

	class Controller{
    	+load() : User
        +save(userToSave : User)
    }
    
    class DataBaseLoader{
    	+load() : User
    }
    
    class DataBaseSaver{
    	+save(userToSave : User)
    }
    
    class StubLoader{
    	+load() : User
    }
    
    class StubSaver{
    	+save(userToSave : User)
    }
    class DataBaseConnexion{
    	+initConnexion()
    }
    
    
    
    
    User "firstUser" -- "secondUser" Conversation
    Conversation -- User
    Conversation o-- Message
    
    Controller -- Loader
    Controller -- Saver
	Controller -- ApiManager
    
    DataBaseLoader -- DataBaseConnexion
    DataBaseSaver -- DataBaseConnexion
    

    Loader <|-- DataBaseLoader
    Saver <|-- DataBaseSaver
    Loader <|-- StubLoader
    Saver <|-- StubSaver
    

User :

Classe modélisant un utilisateur de l'application.

Attributs :

idDafl : ID unique permettant d'identifier un utilisateur
usernameDafl : Pseudo d'un utilisateur lui permettant de s'authentifier
nameDafl : Prénom d'un utilisateur, visible par les autres utilisateurs dans l'application 
passwDafl : Mot de passe de l'utilisateur lui permettant de s'authentifier
usernameAPI : Pseudo Spotify de l'utilisateur lui permettant de s'authentifier à son compte Spotify
passwAPI : Mot de passe Spotify de l'utilisateur lui permettant de s'authentifier à son compte Spotify
likedUser : Stocke les utilisateurs que cet utilisateur a liké
conversations : Stocke les conversations de l'utilisateur

Méthodes :

like(User liked) : Fonction appelé lorsqu'un utilisateur like un autre. Ajoute l'utilisateur liké dans le set likedUser.
chat(User recipient, String content) : Fonction qui ajoute un message dans la bonne conversation de l'utilisateur

Conversation :

Classe modélisant une conversation entre deux utilisateurs.

Attributs :

messages : Liste contenant tout les messages de la conversation entre les deux users
firstUser : Un des utilisateur concerné par la discussion
seconduser : Autre utilisateur concerné par la discussion

Méthodes :

addMessage(User sender,String content) : Fonction qui ajoute un message dans la conversation

Message :

Classe modélisant un message présent dans une discussion.

Attributs :

sender : utilisateur qui a envoyé le message
content : contenu du message 

DataBaseManager :

Classe Manager qui gère l'accès à la base de données. Le Manager fait appel à des sous classes qui gèrent une partie spécifique d'accès à la base de données.

Attributs :

cache : Fichier contenant les logs de l'utilisateur afin qui'il n'ai pas besoin de se reconnecter à chaque fois qu'il démarre l'application.
id : L'identifiant unique de l'utilisateur 
password : Le mot de passe de l'utilisateur 
pers : Sous Manager de DataBaseManager qui gère la base de données

Méthodes :

readAccountCacheFile() : Cherche les logs d'un utilisateur dans un fichier cache et retourne l'utilisateur à qui correspond les logs

IPersistenceManager :

Classe IPersistenceManager : Interface permettant d'implémenter plusieurs façons d'accéder à la base de données.

Méthodes :

search(String id, String password) : Cherche si un utilisateur est dans la base de données. Effectue sa recherche avec l'id et le password d'un utilisateur.
save() : Enregistre les données d'un utilisateur dans la base de données.
load(String id, String password) : Charge les données de l'utilisateur en les cherchant dans la base de données avec son id et son password.

StubPersistence :

Classe implémentant les fonctions de IPersistenceManager. Simule une fausse base de données (liste d'utilisateurs) stockant des utilisateurs.

Attributs :

userDataBase : Stocke les utilisateurs

Méthodes :

createUser(String userName, String name, String password) : Instancie un utilisateur avec ses données (name, username, password) et le retourne
addUserInDatabase(User UsrToAdd) : Ajoute un utilisateur dans la liste d'utilisateur
load(String id, String password) : Crée des utilisateurs dont un utilisateur courant avec un id et un password donné en paramètre et les ajoute dans la liste
bool search(String id, String password) : Cherche un utilisateur dans la liste et retourne vrai si il existe