• In this part, we will discuss behavioral patterns. These patterns ensure effective communication between different objects in a system, assign responsibilities to them, and make sure they all have synchronized information.

  • In plain words

  • It is concerned with the assignment of responsibilities between the objects. What makes them different from structural patterns is they don’t just specify the structure but also outline the patterns for message passing/communication between them. In other words, they assist in answering “How to run a behavior in a software component?”

  • Wikipedia says

    In software engineering, behavioral design patterns are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication.

  • chain of responsibility design pattern

  • command design pattern

  • iterator design pattern

  • state design pattern

  • template method design pattern

  • strategy design pattern

  • visitor design pattern

  • observer design pattern