126 lines
2.5 KiB
Markdown
126 lines
2.5 KiB
Markdown
# Modèle de conception
|
|
|
|
```plantuml
|
|
hide circles
|
|
|
|
package Roles {
|
|
hide methods
|
|
hide attributes
|
|
|
|
class Admin
|
|
class Mod
|
|
class User
|
|
class Guest
|
|
}
|
|
|
|
Guest <|-- User
|
|
User <|-- Mod
|
|
Mod <|-- Admin
|
|
|
|
package Entities {
|
|
hide methods
|
|
|
|
class Category {
|
|
string Nom
|
|
}
|
|
|
|
class Thread {
|
|
string Titre
|
|
bool EstÉpinglé
|
|
bool EstArchivé
|
|
}
|
|
|
|
class Post {
|
|
string Contenu
|
|
string ContenuModifié
|
|
DateTime DateDePublication
|
|
DateTime DateDeModification
|
|
bool EstCachée
|
|
}
|
|
|
|
class Account {
|
|
string Pseudo
|
|
string Courriel
|
|
string Description
|
|
string Signature
|
|
string Rôle
|
|
}
|
|
}
|
|
|
|
Category "1" --o "*" Thread
|
|
Thread "1" --o "1" Post : Original Post
|
|
Thread "1" ---* "*" Post
|
|
|
|
Post "1" --* "*" Post : References
|
|
Post "*" o-- "1" Account
|
|
|
|
package Views {
|
|
hide methods
|
|
hide attributes
|
|
|
|
class CategoryView
|
|
class ThreadView
|
|
class PostView
|
|
class AccountView
|
|
}
|
|
|
|
package Controllers {
|
|
hide attributes
|
|
|
|
class CategoryController {
|
|
Category[] AfficherCatégories()
|
|
bool CréerCatégorie(string nom)
|
|
bool ModifierNomCatégorie(Category cat, string nom)
|
|
bool SupprimerCatégorie(Category cat)
|
|
}
|
|
|
|
class ThreadController {
|
|
Thread[] ListerFils()
|
|
Thread AfficherFil(string title)
|
|
bool CréerFil(string title, string content)
|
|
bool RépondreAuFil(Thread thr, string content, Post[] ref)
|
|
bool ÉpinglerFil(Thread thr)
|
|
bool ArchiverFil(Thread thr)
|
|
}
|
|
|
|
class PostController {
|
|
bool CréerPublication(string content)
|
|
bool ModifierPublication(Post pst, string content)
|
|
bool CacherPublication(Post pst)
|
|
}
|
|
|
|
class AccountController {
|
|
Account AfficherCompte(string pseudo)
|
|
bool CréerCompte(string pseudo, string email, string desc, string sign)
|
|
bool ModifierDescription(Account acc, string desc)
|
|
bool ModifierSignature(Account acc, string sign)
|
|
bool ModifierRôle(Account acc, string role)
|
|
bool BannirCompte(Account acc)
|
|
}
|
|
}
|
|
|
|
Guest --> CategoryView
|
|
Guest --> ThreadView
|
|
Guest --> PostView
|
|
Guest --> AccountView
|
|
|
|
CategoryView --> CategoryController
|
|
ThreadView --> ThreadController
|
|
PostView --> PostController
|
|
AccountView --> AccountController
|
|
|
|
CategoryController --> Category
|
|
|
|
ThreadController --> Thread
|
|
ThreadController --> Post
|
|
|
|
PostController --> Post
|
|
PostController --> Account
|
|
|
|
AccountController --> Account
|
|
|
|
|
|
|
|
```
|
|
|