NFA035, second devoir

Quelques consignes

Le devoir

Les sources du devoir

Dans ce devoir, on vous demande d'implémenter un certain nombre de classes pour gérer un catalogue et des factures. Typiquement, on créera un seul catalogue, et tous les produits utilisés dans l'application seront issus de ce même catalogue.

cela garantira en particulier qu'un seul produit avec un identifiant donné existe dans le catalogue.

La méthode qui créera les produits sera la méthode creerProduit de la classe Catalogue. C'est elle qui se chargera d'appeler le constructeur de Produits.

Dans chacune de ces classes, nous vous demandons d'implémenter un certain nombre de méthodes. les tests utilisés pour la notation vérifieront si les méthodes des classes que vous avez écrites fonctionnent correctement.

La classe Produit

Complétez la classe devoir.collections.Produit (il n'y a rien de complexe dans cette classe). Il est possible de redéfinir equals et hashCode si vous voulez, mais il existe des solutions où ça n'est pas nécessaire.

La classe Catalogue

Complétez la classe devoir.collections.Catalogue.

Elle doit impérativement avoir un constructeur par défaut, sinon tous les tests échoueront.

Elle comporte beaucoup de méthodes. Écrivez-les et testez-les une par une, dans l'ordre dans lequel elles apparaissent.

La première méthode (creerProduit) sera beaucoup utilisée par les tests, car elle servira à créer les produits. C'est ce qu'on appelle une factory method (une méthode servant à créer un nouvel objet).

La classe Facture

Complétez la classe Facture, qui représente une facture. Dans une facture, on a potentiellement commandé plusieurs produits, éventuellement en plusieurs exemplaires.

Le point principal est qu'on peut ajouter ou retirer des produits dans la facture, et que cela modifiera la quantité de produits commandés. Par exemple, si j'ai commandé 3 souris et 2 disques durs, si je commande 5 souris de plus, j'aurai au total commandé 8 souris et 2 disques durs.

Les méthodes sont décrites dans la classe.

Quelques idées de tests

Nous vous laissons écrire vos jeux de tests... Néanmoins, quelques pistes: