Realiser par : Ezzine Chadi , Sebai Meryem
📄 Rapport du Projet JavaFX – Application de Dessin
🎯 Objectif du projet :
Développer une application JavaFX permettant à l'utilisateur de :
● Sélectionner des formes (rectangle, cercle, ligne)02
● Les dessiner dans une zone graphique
● Enregistrer les dessins dans une base de données
● Charger les formes enregistrées
● Journaliser les actions selon 3 stratégies : console, fichier ou base de données
Architecture de l’application:
Diagramme de cas d’utilisation :
Architecture de l’application
✅ 1. Création des formes géométriques
Fonctionnalité : Créer différentes formes selon le choix de l’utilisateur
Design Pattern : Factory Pattern
Pourquoi ? Pour créer dynamiquement des formes (Circle, Rectangle, Line) selon leur type sans modifier le code principal.
Classes concernées :
● Shape (interface)
● CircleShape, RectangleShape, LineShape
● ShapeFactory
● ShapeType (enum)
Connexion à la base de données (SQLite)
Fonctionnalité : Lire et écrire les formes + logs dans une base SQLite
Design Pattern : Singleton
Pourquoi ? Pour garantir une seule connexion active à la base de données.
Classe :
● DatabaseInitializer
✅ 3. Système de journalisation (Logging)
Fonctionnalité : Enregistrer les actions de l’utilisateur (dessin, chargement...)
Design Pattern : Strategy Pattern
Pourquoi ? Pour changer dynamiquement la méthode de journalisation.
💡 Exemple de scénario utilisateur :
1. L’utilisateur sélectionne “Cercle”
2. Il clique sur la zone de dessin → Un cercle est dessiné
3. L’action est enregistrée dans le fichier de log (ou console/BDD)
4. La forme est sauvegardée dans la base
5. En cliquant sur “Charger”, toutes les formes sont récupérées et redessinées
📝 Conclusion
L’utilisation des design patterns a permis de rendre l’application :
● Modulaire : chaque composant est indépendant
● Extensible : facile d’ajouter un nouveau type de forme ou stratégie de log
● Maintenable : séparation des responsabilités claire