diff --git a/swift/Sources/GildedRose/CustomisedItemFactory.swift b/swift/Sources/GildedRose/CustomisedItemFactory.swift index 964011ec..9605fee1 100644 --- a/swift/Sources/GildedRose/CustomisedItemFactory.swift +++ b/swift/Sources/GildedRose/CustomisedItemFactory.swift @@ -12,9 +12,14 @@ protocol CustomisedItem { func updateItemState() } -class CustomisedItemFactory { +protocol CustomisedItemFactoryCreator { + static func getCustomisedItem(item: Item) -> CustomisedItem +} + + +struct CustomisedItemFactory: CustomisedItemFactoryCreator { // Returns the Customised Item based on the Item name - func getCustomisedItem(item: Item) -> CustomisedItem { + static func getCustomisedItem(item: Item) -> CustomisedItem { switch item.name { case ItemNameConstants.kAgedBrieItem: return AgedBrieItem(item: item) @@ -27,7 +32,3 @@ class CustomisedItemFactory { } } } - - - - diff --git a/swift/Sources/GildedRose/GildedRose.swift b/swift/Sources/GildedRose/GildedRose.swift index 3b4746b5..8329da80 100644 --- a/swift/Sources/GildedRose/GildedRose.swift +++ b/swift/Sources/GildedRose/GildedRose.swift @@ -6,7 +6,6 @@ public class GildedRose { } public func updateQuality() { - let customFactoryObj = CustomisedItemFactory() - _ = items.map({customFactoryObj.getCustomisedItem(item: $0).updateItemState()}) + _ = items.map({CustomisedItemFactory.getCustomisedItem(item: $0).updateItemState()}) } }