The following behavioral patterns can be used to define the communication between classes and objects:
- Chain of Responsibility: A pattern for handling a request between a collection of objects
- Command: A pattern used to represent a request
- Interpreter: A pattern for defining syntax or language for instructions in a program
- Iterator: A pattern for traversing a collection of items without detailed knowledge of the elements in a collection
- Mediator: A pattern for simplifying communication between classes
- Memento: A pattern for capturing and storing the state of an object
- Observer: A pattern for allowing objects to be notified of changes to another object's state
- State: A pattern for altering an object's behavior when its state changes
- Strategy: A pattern for implementing a collection of algorithms where a specific algorithm can be applied at runtime
- Template Method: A pattern for defining the steps of an algorithm while leaving the implementation details in a subclass
- Visitor: A pattern promoting loose coupling between data and functionality, allowing for additional operations to be added without requiring changes to the data classes