-
Strategy - "The Strategy Pattern defines a family of algorithms, encapsulates each one and makes them interchangeable. Strategy lets the algorithm vary independently from the clients that use it."
-
Observer - "The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are updated automatically."
-
State - "The State Pattern allows an object to alter its behaviour when its internal state changes. The object will appear to change its class."