iterator
mediator
memento
observer