public class DiscountedItem implements LineItem
1: /**
2: A decorator for an item that applies a discount.
3: */
4: public class DiscountedItem implements LineItem
5: {
6: /**
7: Constructs a discounted item.
8: @param item the item to be discounted
9: @param discount the discount percentage
10: */
11: public DiscountedItem(LineItem item, double discount)
12: {
13: this.item = item;
14: this.discount = discount;
15: }
17: public double getPrice()
18: {
19: return item.getPrice() * (1 - discount / 100);
20: }
22: public String toString()
23: {
24: return item.toString() + " (Discount " + discount
25: + "%)";
26: }
28: private LineItem item;
29: private double discount;
30: }