Skip to content

Commit e87ac9b

Browse files
committed
Refactor: Refine Tier abstraction with enum
1 parent bd3d83a commit e87ac9b

File tree

1 file changed

+14
-6
lines changed
  • exercises/tiered_pricing/solutions/mperezi/src/main/java/tv/codely/checkout

1 file changed

+14
-6
lines changed

exercises/tiered_pricing/solutions/mperezi/src/main/java/tv/codely/checkout/TieredPricing.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,25 @@
22

33
public class TieredPricing {
44

5-
private static final double FIRST_TIER_UNIT_PRICE = 299.0;
6-
private static final double SECOND_TIER_UNIT_PRICE = 239.0;
7-
public static final double THIRD_TIER_UNIT_PRICE = 219.0;
5+
private enum Tier {
6+
FIRST(299.0),
7+
SECOND(239.0),
8+
THIRD(219.0);
9+
10+
final double unitPrice;
11+
12+
Tier(double unitPrice) {
13+
this.unitPrice = unitPrice;
14+
}
15+
}
816

917
public double totalPrice(int subscriptions) {
1018
if (subscriptions < 3) {
11-
return subscriptions * FIRST_TIER_UNIT_PRICE;
19+
return subscriptions * Tier.FIRST.unitPrice;
1220
}
1321
if (subscriptions < 11) {
14-
return subscriptions * SECOND_TIER_UNIT_PRICE;
22+
return subscriptions * Tier.SECOND.unitPrice;
1523
}
16-
return subscriptions * THIRD_TIER_UNIT_PRICE;
24+
return subscriptions * Tier.THIRD.unitPrice;
1725
}
1826
}

0 commit comments

Comments
 (0)