In software engineering, behavioral design patterns are design patterns that identify common communication patterns among objects. By doing so, these patterns increase flexibility in carrying out communication.
Provides a computational framework for the design and implementation of systems that integrate large and diverse specialized modules, and implement complex, non-deterministic control strategies
Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. The variant weak reference pattern decouples an observer from an observable to avoid memory leaks in environments without automatic weak references.[2]
A messaging pattern where senders (publishers) and receivers (subscribers) are decoupled via message topics and brokers. Commonly used in distributed systems, this pattern supports asynchronous, many-to-many communication.
^"Externalize The Stack". c2.com. 2010-01-19. Archived from the original on 2011-03-03. Retrieved 2012-05-21.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
^Nakashian, Ashod (2004-04-11). "Weak Reference Pattern". c2.com. Archived from the original on 2011-03-03. Retrieved 2012-05-21.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
^"Protocol Stack". c2.com. 2006-09-05. Archived from the original on 2011-03-03. Retrieved 2012-05-21.{{cite web}}: CS1 maint: bot: original URL status unknown (link)