Dans une base de code héritée, j'ai une très grande classe avec beaucoup trop de champs/responsabilités. Imagine que c'est un objet Pizza.Motif de construction pseudo-verso?
Il a des champs très granulaires comme:
- hasPepperoni
- hasSausage
- hasBellPeppers
Je sais que lorsque ces trois champs sont vraies, nous avons une pizza suprême. Cependant, cette classe n'est pas ouverte pour l'extension ou la modification, donc je ne peux pas ajouter un PizzaType, ou isSupreme(), etc. Les gens dans la base de code dupliquent la même logique if(a && b && c) then isSupreme)
partout. Ce problème se pose pour un certain nombre de concepts, donc je cherche un moyen de déconstruire cet objet en plusieurs sous-objets, par ex. un motif de constructeur pseudo-arrière.
PizzaType pizzaType = PizzaUnbuilder.buildPizzaType(Pizza); //PizzaType.SUPREME
Dough dough = PizzaUnbuilder.buildDough(Pizza);
Est-ce la bonne approche? Est-ce que ce modèle existe déjà?
Avez-vous déjà eu une réponse satisfaisante, Avid? – Pureferret