Bonjour,
je travaille à un projet collaboratif sur le web avec Java EE autour des mathématiques. Mais je m'y connais peu en architecture complexe et en design patterns.
Les utilisateurs manipulent des formules qui doivent être stockées en base de données entre deux sessions. Une valeur peut être attribuée à une formule selon le paradigme considéré (le nombre de paradigmes est potentiellement infini).
Soit la formule z = ax²+by. A noter particulièrement que by est également une formule à part entière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class Formule extends ElementPouvantPrendreUneValeur { private ArrayList<Element> elements ; //où un élément peut être une formule, une variable (ex*: x) ou un opérateur (ex : +, -, etc.) } public class Element { } public class ElementPouvantPrendreUneValeur { private long id ; } public class Variable extends ElementPouvantPrendreUneValeur { private String nom ; } public class Operateur extends Element { private OperateurEnum operateur; } public class AttributionValeur { private long id ; private long idParadigme ; private long idElementPouvantPrendreUneValeur ; private long valeur ; }
J'ai le sentiment que ma façon de structurer mon objet formule est sale : la classe Element n'existe que pour l'arrayList de l'objet formule et l'objet Operateur abrite seulement un enum personnalisé, Formule est une cascade de listes de... variables et d'opérateurs, etc.
Je veux stocker en base Variables, Formules et AttributionValeurs. Sachant que ma liste elements dans l'objet formule est de taille indéfinie et potentiellement longue, considérant également le stockage en bdd, n'est-il pas plus intéressant d'utiliser du xml et de fusionner Element et ses descendants ? Ou bien, est-ce que je regarde mon œuvre avec trop de pessimisme ?
Je suis preneur de toute remarque.
Merci pour votre attention.
Partager