move item names to objects

This commit is contained in:
Sallah Kokaina 2019-11-01 18:15:00 +01:00
parent a7df25458d
commit 871cc40b41
5 changed files with 27 additions and 17 deletions

View File

@ -30,4 +30,5 @@
## Refactoring actions ## Refactoring actions
-[x] extract hardcoded variables -[x] extract hardcoded variables
-[x] create polymorphism for items -[x] create polymorphism for items
-[x] move item names as item members

View File

@ -1,13 +1,13 @@
package com.gildedrose; package com.gildedrose;
import com.gildedrose.item.Backstage;
import com.gildedrose.item.Brie;
import com.gildedrose.item.Item; import com.gildedrose.item.Item;
import com.gildedrose.item.Sulfuras;
class GildedRose { class GildedRose {
Item[] items; Item[] items;
String BRIE = "Aged Brie";
String BACKSTAGE = "Backstage passes to a TAFKAL80ETC concert";
String SULFURAS = "Sulfuras, Hand of Ragnaros";
public GildedRose(Item[] items) { public GildedRose(Item[] items) {
this.items = items; this.items = items;
@ -15,10 +15,10 @@ class GildedRose {
public void updateQuality() { public void updateQuality() {
for (int i = 0; i < items.length; i++) { for (int i = 0; i < items.length; i++) {
if (!items[i].name.equals(BRIE) if (!items[i].name.equals(Brie.BRIE)
&& !items[i].name.equals(BACKSTAGE)) { && !items[i].name.equals(Backstage.BACKSTAGE)) {
if (items[i].quality > 0) { if (items[i].quality > 0) {
if (!items[i].name.equals(SULFURAS)) { if (!items[i].name.equals(Sulfuras.SULFURAS)) {
items[i].quality = items[i].quality - 1; items[i].quality = items[i].quality - 1;
} }
} }
@ -26,7 +26,7 @@ class GildedRose {
if (items[i].quality < 50) { if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1; items[i].quality = items[i].quality + 1;
if (items[i].name.equals(BACKSTAGE)) { if (items[i].name.equals(Backstage.BACKSTAGE)) {
if (items[i].sellIn < 11) { if (items[i].sellIn < 11) {
if (items[i].quality < 50) { if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1; items[i].quality = items[i].quality + 1;
@ -42,15 +42,15 @@ class GildedRose {
} }
} }
if (!items[i].name.equals(SULFURAS)) { if (!items[i].name.equals(Sulfuras.SULFURAS)) {
items[i].sellIn = items[i].sellIn - 1; items[i].sellIn = items[i].sellIn - 1;
} }
if (items[i].sellIn < 0) { if (items[i].sellIn < 0) {
if (!items[i].name.equals(BRIE)) { if (!items[i].name.equals(Brie.BRIE)) {
if (!items[i].name.equals(BACKSTAGE)) { if (!items[i].name.equals(Backstage.BACKSTAGE)) {
if (items[i].quality > 0) { if (items[i].quality > 0) {
if (!items[i].name.equals(SULFURAS)) { if (!items[i].name.equals(Sulfuras.SULFURAS)) {
items[i].quality = items[i].quality - 1; items[i].quality = items[i].quality - 1;
} }
} }

View File

@ -1,7 +1,10 @@
package com.gildedrose.item; package com.gildedrose.item;
public class Backstage extends Item { public class Backstage extends Item {
public Backstage(String name, int sellIn, int quality) {
super(name, sellIn, quality); public static String BACKSTAGE = "Backstage passes to a TAFKAL80ETC concert";
public Backstage(int sellIn, int quality) {
super(BACKSTAGE, sellIn, quality);
} }
} }

View File

@ -1,7 +1,10 @@
package com.gildedrose.item; package com.gildedrose.item;
public class Brie extends Item { public class Brie extends Item {
public Brie(String name, int sellIn, int quality) {
super(name, sellIn, quality); public static String BRIE = "Aged Brie";
public Brie(int sellIn, int quality) {
super(BRIE, sellIn, quality);
} }
} }

View File

@ -1,7 +1,10 @@
package com.gildedrose.item; package com.gildedrose.item;
public class Sulfuras extends Item { public class Sulfuras extends Item {
public Sulfuras(String name, int sellIn, int quality) {
super(name, sellIn, quality); public static String SULFURAS = "Sulfuras, Hand of Ragnaros";
public Sulfuras(int sellIn, int quality) {
super(SULFURAS, sellIn, quality);
} }
} }