This interface describes the tasks that an invoice formatter needs to carry out.
A line item in an invoice.
A bundle of line items that is again a line item.
A decorator for an item that applies a discount.
An invoice for a sale, consisting of line items.
A program that tests the invoice classes.
A product with a price and description.
A simple invoice formatter.