Errata magasin virtuel etude de cas pdf
ERRATA - MAGASIN VIRTUEL juillet Entre mars et juillet un certain nombre d'articles sont parus sur http tahe developpez com Ils avaient pour but de présenter le framework Spring aussi bien dans le monde Java que dans le monde NET Une application simpli ?ée d'achats de produits sur le web a servi de ?l conducteur à tous les articles Celle-ci a l'architecture suivante utilisateur Couche interface utilisateur ui Couche métier domain SPRING Couche d'accès aux données dao Données Une erreur de conception s'est glissée dès les premiers articles parus en mars dans l'implémentation de la couche domain Je n'ai détecté l'erreur que le juillet Mieux vaut tard que jamais Cet article explique quelle est l'erreur et quelles sont ses conséquences pour les applications utilisant la couche domain Pour comprendre cet Errata il faut avoir lu les premiers articles de la série a ?n de comprendre le rôle de la couche domain En fait nous conseillons au lecteur de lire d'abord les articles sans tenir compte de cet errata et de ne revenir qu'ensuite sur ce dernier En e ?et l'erreur n'appara? t pas lors d'une lecture rapide des articles et ne nuit en rien à leur compréhension Il est probable que seuls des développeurs expérimentés la détecteront dès la première lecture Nous présentons tout d'abord l'erreur dans sa version Java Elle existe à l'identique dans la version NET Nous proposons ensuite des exemples de codes corrigeant l'erreur Ceux-ci sont pris dans les versions NET L'erreur dans sa version Java L'interface IArticlesDomain et sa classe d'implémentation AchatsArticles s'avèrent avoir une conception incorrecte pour ce qui est de l'achat du panier La classe AchatsArticles est la suivante package istia st articles domain Imports import istia st articles dao IArticlesDao import istia st articles exception UncheckedAccessArticlesException import java util ArrayList import java util List public class AchatsArticles implements IArticlesDomain Champs private IArticlesDao articlesDao private ArrayList erreurs Constructeurs public AchatsArticles IArticlesDao articlesDao Méthodes public ArrayList getErreurs public List getAllArticles public Article getArticleById int id public void acheter Panier panier L'achat d'un panier se fait en deux temps la méthode acheter est tout d'abord utilisée pour décrémenter les stocks des articles achetés la méthode getErreurs est ensuite utilisée pour obtenir la liste des éventuelles erreurs Celles-ci listent les articles dont les stocks sont insu ?sants pour satisfaire la demande du client Si cette méthode est acceptable quoique maladroite lorsqu'il n'y a qu'un client elle ne l'est plus lorsqu'il y en a plusieurs comme c'est le cas dans une application web o? les clients sont multiples Il faut tout d'abord comprendre qu'il n'y a qu'une seule instance de la classe AchatsArticles pour satisfaire les demandes des clients On a a ?aire à un singleton Prenons la situation suivante dans le cadre d'une application web errata-magasin-virtuel serge tahe istia univ-angers fr C le client veut acheter le panier panier Il est servi par un thread T côté serveur Celui-ci commence par faire appel à la méthode acheter du singleton AchatsArticles Celle-ci se termine Les erreurs d'achats ont
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/11702975311nksvy7bnedcoxnhtd0hwni0cvkb6nu6evt43xugklxoq6fusdt8toly3rpfnurk14r8l0tntxdn73qptnshlctzfnlh48wose4jm.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/30TcItf0QBkFCqHHNi15zW5QAYOnwCvuT6l8EHEIoBnzp27TJIG9Mb1rpHu1AgC1ZKfduBYZ9B9lLxmxS5imneDG.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/F1IxBiIwzex6JDQneentwmI5jr07r7W8MdDSSQhfD7BIncyGXGaJOSG0i31ZCNv5Inzqkbts9LRlEgHUxzQdVlKJ.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/cHnwfkEI5SpjXDPDVxmZymoiLzocq1jemesFwq09ZrcN5cAInKiWciC5HjKyqfQZJLkkghLMgvs6vhntEJl7rxa0.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/11703219556vnbspkw4reyzujdlsgva5malq13uwolysdc1qttfkkh5zizqqemyexed1mtirgb4rs4edbhk1iheqklby0we7cvntrkwr3vowfsy.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/gJU4N4yv7IqKNfKYWvYDwMXssDCWaXQpPUIpjz2F6flM0hyEoCR2DwUOU1faPKb9Q5O66eNMfLiFQQcTNyrDKFys.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/drKCDv9fM2y1VP7GytkbgRhxNC08YtEFmiqYVhc0RLvW6O9J2ez9VyJGQvUdnV9yf6d2iUA4TVUfyo1Rj33Nxuhe.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/2etiXakBe89u9PRTfHZzwtkvbnN2wEqMZIkwZISkR9MWycY2qaMEaaN9lX3FatHiT4mFterDTCKdjCHrLjj6Zn4z.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/11703329253wtpzkra9llrs2ar3m6fviuff36uvzymnsjnrq4tqhwmieqfuwggdb0pyf5mh5lcvw23b0sggslnoe0nc0ynzms2mc8u3jbj1ly4q.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/L8GdMGrAnbAbKsRmsHb1Y3XeAtzOcN5baDkZ1xpf4KzHcyd8WdnFh5wB2N8bXENKRrHDoJxhpN2OSR933ZCo0aIh.png)
-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise- Détails
- Publié le Sep 23, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 58kB