Je travaille sur un nouveau modèle de domaine pour une application qui traitera des commandes pour les éléments intégrés (bien, gardez-le de toute façon pour cette question). J'ai une classe "VendorItem" qui représente les éléments qui peuvent être commandés. A l'origine, la classe "Order" allait avoir une liste de VendorItems associée, mais j'ai rencontré des problèmes avec elle jusqu'à présent.Architecture: Gestion de l'historique des commandes
Supposons que le système crée des commandes depuis un bon moment. Un jour, un utilisateur arrive et décide qu'un fournisseur a changé de prix ou d'autres détails comme la taille de l'emballage. Je ne voudrais pas que les commandes précédentes soient affectées par un tel changement. Au premier lavage j'allais faire une classe "OrderLine" qui est fondamentalement une copie de la classe "VendorItem", mais cela sent juste (sent mauvais?) Au sens OO.
Existe-t-il une meilleure façon de refactoriser cela afin que je n'ai pas de copies de classes et d'informations dans le modèle de domaine?
REMARQUE: Dans notre cycle de développement, nous ignorons la base de données jusqu'à ce que le modèle de domaine soit complet pour permettre une séparation claire des problèmes. –