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 282 fois
Modifier
0
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !
Questions similairesPlus de questions sur Java
3
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 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.1
Une classe Java qui convertit les nombres arabes en chiffres romains.1
Écrire une implémentation en Java du code kata FizzBuzz.