Behavioral Patterns are concerned with algorithms and the assignment of responsibilities between objects.
behavioral design pattern that lets you pass requests along a chain of handlers...
in command pattern the request is send to the invoker and invoker pass it to the command object
this pattern is used when the data structure is variable and you want to iterate through it
Define an object that encapsulates how a set of objects interact
this pattern is used to manages state for using current state or the previous states in program.
this pattern is used when we want to notify the changes of internal state of a class to other registered class
this pattern is used when an object change its behavior based on its internal state.
The Strategy pattern suggests that you take a class that does something specific in a lot of different ways and extract all of these algorithms into separate classes called strategies.
this pattern is used when we have an algorithm or set of tasks that its use in multiple class and some of the step of this tasks/algorithms is identical and some of it not.