•Mediator
–Define an object that encapsulates how a set of objects
interact. Mediator promotes loose coupling by keeping objects from
referring to each other explicitly,
and lets you vary their interaction independently
•Memento
–Without violating encapsulation, capture and externalize
an object’s internal state so that
the object can be restored to this state later
•Observer
–Define a one-to-many dependency between objects so that
when one object changes state,
all its dependents are notified and updated automatically
•State
–Allow an object to alter its behavior when its internal
state changes. The object will appear to change class
•