Intermédiaire
Ce code fonctionne et répond aux besoin du client, il peut cependant être encore largement amélioré.
Quelles sont les propositions pour les prochaines étapes pour améliorer la maintenabilité qui paraissent pertinentes
class GildedRose {
private static final String SULFURAS_NAME = "Sulfuras, Hand of Ragnaros";
private static final String BACKSTAGE_PASSES_NAME = "Backstage passes to a TAFKAL80ETC concert";
private static final String AGED_BRIE_NAME = "Aged Brie";
Item[] items;
public GildedRose(Item[] items) {
this.items = items;
}
public void updateQuality() {
for (Item item : items) {
if (SULFURAS_NAME.equals(item.name)) {
continue;
}
item.sellIn = item.sellIn - 1;
if (AGED_BRIE_NAME.equals(item.name)) {
updateAgedBrie(item);
} else if (BACKSTAGE_PASSES_NAME.equals(item.name)) {
updateBackstagePass(item);
} else {
updateNormalItem(item);
}
}
}
private void updateAgedBrie(Item item) {
increaseQuality(item);
if (item.sellIn < 0) {
increaseQuality(item);
}
}
private void updateBackstagePass(Item item) {
increaseQuality(item);
if (item.sellIn < 10) {
increaseQuality(item);
}
if (item.sellIn < 5) {
increaseQuality(item);
}
if (item.sellIn < 0) {
item.quality = 0;
}
}
private void updateNormalItem(Item item) {
decreaseQuality(item);
if (item.sellIn < 0) {
decreaseQuality(item);
}
}
private void increaseQuality(Item item) {
if (item.quality < 50) {
item.quality = item.quality + 1;
}
}
private void decreaseQuality(Item item) {
if (item.quality > 0) {
item.quality = item.quality - 1;
}
}
}
Auteur: Clément DevosStatut : PubliéeQuestion passée 327 fois
Modifier
0
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !
1
Que signifie SRP ?1
Quel est le nom du design pattern utilisé pour structurer les applications complexes en considérant le domaine du problème ?1
Une classe Java qui convertit les nombres arabes en chiffres romains.2
Écrire une fonction qui retourne le premier caractère d'une chaîne de caractères en Java1
Code Java qui remplace les clés d'un template par leurs valeurs.4
Ce code permet de récupérer aléatoirement des nombres entre 1 et 31 dans les résultats. Il aurait fallu déclarer SimpleDateFormat dans le Thread.1
Écrire une implémentation en Java du code kata FizzBuzz.