tailieunhanh - Lecture Software design and architecture – Chapter 31

Lecture 31 – Design patterns. Design patterns make it easier to reuse successful designs and architectures. Expressing proven techniques as design patterns makes them more accessible to developers of new systems. Design patterns help you choose design alternatives that make a system reusable and avoid alternatives that compromise reusability. | SOFTWARE DESIGN AND ARCHITECTURE LECTURE 31 Review Creational Design Patterns Singleton Pattern Builder Pattern Outline Behavioral Patterns Observer Pattern Chain of command Behavioral Patterns characterize the ways in which classes or objects interact and distribute responsibility. Behavioral class patterns: use inheritance to describe algorithms and flow of control Behavioral object patterns: describe how a group of objects cooperate to perform a task that no single object can carry out alone. Observer Observer Design Pattern Intent Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. Encapsulate the core (or common or engine) components in a Subject abstraction, and the variable (or optional or user interface) components in an Observer hierarchy. The "View" part of Model-View-Controller. Chain of Responsibility Intent: Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it. The pattern chains the receiving objects together, and then passes any request messages from object to object until it reaches an object capable of handling the message. The number and type of handler objects isn't known a priori, they can be configured dynamically. Summary Behavioral Patterns Observer Pattern Chain of command | SOFTWARE DESIGN AND ARCHITECTURE LECTURE 31 Review Creational Design Patterns Singleton Pattern Builder Pattern Outline Behavioral Patterns Observer Pattern Chain of command Behavioral Patterns characterize the ways in which classes or objects interact and distribute responsibility. Behavioral class patterns: use inheritance to describe algorithms and flow of control Behavioral object patterns: describe how a group of objects cooperate to perform a task that no single object can carry out alone. Observer Observer Design Pattern Intent Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. Encapsulate the core (or common or engine) components in a Subject abstraction, and the variable (or optional or user interface) components in an Observer hierarchy. The "View" part of Model-View-Controller. Chain of Responsibility Intent: Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it. The pattern chains the receiving objects together, and then passes any request messages from object to object until it reaches an object capable of handling the message. The number and type of handler objects isn't known a priori, they can be configured dynamically. Summary Behavioral Patterns Observer Pattern Chain of command