2014_2015:s3:concprogobjet:td:td4
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
2014_2015:s3:concprogobjet:td:td4 [2014/10/04 18:00] – blay | 2014_2015:s3:concprogobjet:td:td4 [2014/10/14 06:12] (current) – [Responsabilités et Couplages] blay | ||
---|---|---|---|
Line 2: | Line 2: | ||
On distingue deux formes de consommation pour un même modèle de voiture : | On distingue deux formes de consommation pour un même modèle de voiture : | ||
- | * la consommation moyenne sur route, urbaine ou mixte [[http:// | + | * la consommation moyenne sur route, urbaine ou mixte [[http:// |
* la consommation en fonction de la vitesse | * la consommation en fonction de la vitesse | ||
- | < | + | < |
Si une voiture roule à '' | Si une voiture roule à '' | ||
< | < | ||
Line 12: | Line 12: | ||
<note warning> | <note warning> | ||
+ | |||
+ | <note tip> Tous les modèles de voiture n'ont pas la même manière de faire les calculs mais à la fin on veut tous les interroger de la même manière ! </ | ||
-Quelle modélisation proposez-vous pour supporter les opérations suivantes : | -Quelle modélisation proposez-vous pour supporter les opérations suivantes : | ||
- Je veux pouvoir déclarer que le modèle Clio a une consommation moyenne sur Route de 6,3, urbaine de 8,1, .... | - Je veux pouvoir déclarer que le modèle Clio a une consommation moyenne sur Route de 6,3, urbaine de 8,1, .... | ||
Line 19: | Line 21: | ||
- Réfléchissez à l' | - Réfléchissez à l' | ||
- On intègre à présent la consommation " | - On intègre à présent la consommation " | ||
- | - On vient d' | + | - On vient d' |
- | - En fait, pour certains modèles de voiture (par exemple, les Renaults), les consommations moyennes sont obtenues par des requêtes à un service externe qui, en fonction des informations sur le modèle (on se limite au nom et à l' | + | * Par exemple, pour la FerrariF430, |
- | - Pour certains véhicules on veut pouvoir enregistrer une consommation en Galon pour 100 Miles, que modifiez-vous? | + | * consommations : |
+ | * consoSurRoute= 13.3 litre par CENT_KM, | ||
+ | * consoUrbaine=26.9 | ||
+ | * consoMixte = 18.3 litre par CENT_KM | ||
+ | * et le calcul de la consommation en fonction de la vitesse doit utiliser cette règle fictive qui donnerait des résultats comme : | ||
+ | * A 150km/ | ||
+ | * A 90/hConso : [17.045222222222222 | ||
+ | * A 30km/hConso : [9.087666666666667 | ||
+ | - On veut définir un calculateur qui en fonction d'un modèle de voiture et d'une distance peut calculer : | ||
+ | * la consommation à prévoir en fonction du type de route | ||
+ | * Pour ma ferrari F430 si je roule pendant 100km sur route, combien vais-je dépenser d' | ||
+ | * la consommation à prévoir en fonction de la vitesse | ||
+ | * Pour ma clio si je roule pendant 100km à 90km/h, combien vais-je dépenser d' | ||
+ | * Quel est le couplage entre la classe calculateur et la classe modèle de voiture? | ||
+ | - En fait, pour certains modèles de voiture (par exemple, les Peugeots), les consommations moyennes sont obtenues par des requêtes à un service externe qui, en fonction des informations sur le modèle (on se limite au nom et à l' | ||
+ | - Donc si on résume, voici des exemples de modèles : | ||
+ | - A un modèle Clio, on associe des données de consommation fixes et un calcul de la consommation en fonction de la vitesse qui est basé sur un coefficient K donné, on fait pareil pour le modèle Mégane | ||
+ | - A un modèle Ferrari F430 on associe des données de consommation fixes et un calcul de la consommation en fonction de la vitesse qui est basé sur un coefficient K calculé, on fait pareil pour certaines Porshes | ||
+ | - A un modèle Peugeot 208, on obtient les données de consommation en faisant appel à un service externe, et la consommation en fonction de la vitesse est basée sur un coefficient K donné; | ||
+ | - A un modèle Mercedes ClasseA, on obtient les données de consommation en faisant appel à un service externe, et la consommation en fonction de la vitesse est basée sur un coefficient K calculé | ||
+ | - Si à présent on ajoute un autre mode de détermination de la consommation basée par exemple sur des données statistiques stockées dans un fichier excel, et que l'on décide que le modèle Clio se base sur ces données... Votre solution est-elle toujours valide? | ||
+ | - Pour certains véhicules on veut pouvoir enregistrer une consommation en Galon pour 100 Miles, que devez-vous modifier? On ne vous demande pas de le faire. | ||
- Que retenez-vous? | - Que retenez-vous? | ||
- | <box round rgb(150, | + | <box round rgb(150, |
- | * Dans votre répertoire de projet, sous TD2, se trouvent: | + | * Dans votre répertoire de projet, sous TD4, se trouvent |
- Un document contenant | - Un document contenant | ||
- | * votre modèle final (Tout le monde n' | + | * votre modèle final (Tout le monde n' |
* des explications sur les raisons de ce modèle (dont vous êtes très fiers) et les leçons apprises. | * des explications sur les raisons de ce modèle (dont vous êtes très fiers) et les leçons apprises. | ||
- | - Les codes et les tests. Pensez bien que le service externe ne doit pas être implémenté. Une fonction qui pour l' | + | - Les codes et les tests. Pensez bien que le service externe ne doit pas être vraiment |
</ | </ | ||
+ | ==== Tuyaux ==== | ||
+ | Vous pouvez utiliser la bibliothèque " | ||
+ | |||
+ | Les . jar dont vous avez besoin : | ||
+ | |||
+ | Pour pouvoir les utiliser dans le projet Eclipse : | ||
+ | Sur le projet > Properties > Java Build Path > Add external Jars et sélectionnez les. | ||
+ | |||
+ | |||
+ | Pour transformer un objet Java en string Json : | ||
+ | <code java> | ||
+ | | ||
+ | objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, | ||
+ | Object json = objectMapper.readValue( | ||
+ | objectMapper.writeValueAsString(cm), | ||
+ | String jsonString = objectMapper.writerWithDefaultPrettyPrinter() | ||
+ | .writeValueAsString(json); | ||
+ | return jsonString; | ||
+ | </ | ||
+ | |||
+ | Pour transformer une string Json en objet Java : | ||
+ | <code java> | ||
+ | // | ||
+ | String json = serviceExterne.consommationJSON(modele); | ||
+ | ObjectMapper objectMapper = new ObjectMapper(); | ||
+ | objectMapper.enableDefaultTyping(); | ||
+ | //Nom de la classe cible dépendant de votre modèle, chez moi, c'est ConsommationMoyenne | ||
+ | ConsommationMoyenne cm = objectMapper.readValue(json, | ||
+ | </ | ||
+ | |||
< | < |
2014_2015/s3/concprogobjet/td/td4.1412445646.txt.gz · Last modified: 2014/10/04 18:00 by blay