1. Composite Pattern
    Name in Design PatternActual Name PrimitiveLineItem CompositeBundle LeafProduct method()getPrice()

  2. Decorator Pattern
    Name in Design PatternActual Name
    ComponentLineItem
    ConcreteComponentProduct
    DecoratorDiscountedItem
    method()getPrice()

  3. Observer Pattern
    Name in Design PatternActual Name
    SubjectInvoice
    Observer ChangeListener
    ConcreteObserver Anonymous class that implements ChangeListener
    attach() addChangeListener()
    notify() stateChanged()

  4. Iterator Pattern
    Name in Design Pattern Actual Name
    Aggregate None
    ConcreteAggregate Invoice
    Iterator Iterator
    ConcreteIterator Anonymous class that implements Iterator
    createIterator() getItems()
    next() next()
    isDone() hasNext()
    currentItem() Not implemented

  5. Strategy Pattern
    Name in Design Pattern Actual Name
    ContextInvoice
    Strategy InvoiceFormatter
    ConcreteStrategy SimpleFormatter
    doWork() formatHeader() formatLineItem() formatFooter()