Upload
allegra-macias
View
14
Download
0
Embed Size (px)
DESCRIPTION
Design Patterns. Ric Holt U Waterloo, March 2009. What is a Design Pattern. A Design Pattern systematically names, explains, and implements an important recurring design. These define well-engineered design solutions that practitioners can apply when crafting their applications. - PowerPoint PPT Presentation
Citation preview
Design Patterns
Ric Holt
U Waterloo, March 2009
What is a Design Pattern
• A Design Pattern systematically names, explains, and implements an important recurring design.
• These define well-engineered design solutions that practitioners can apply when crafting their applications.
Why Design Patterns?
• Good designers do not solve every problem from first principles. They reuse solutions.
• Practitioners do not do a good job of recording experience in software design for others to use. Patterns help solve this problem.
Two Example Patterns
1. MVC (Model View Controller)
2. Adapter
1. MVC Pattern(Model View Controller)
• There is a model (subject) which can be thought of as the application
• There are one or more views of the object (by observers)
• There is a controller that mediates between the model and the view(s).
Example MVC
a b ca
bc
[Mancoridis picture]
Views
Controller
Modela b c
503020
a = 50%b = 30%c = 20%
Example MVC
a b ca
bc
[Mancoridis picture]
Views
Controller
Modela b c
503020
a = 50%b = 30%c = 20%
See
Interact
Multiple View Problem
• Need to keep all the views consistent
• If user (or one of users) changes a view, all other views should be updated
Information Hiding:Insulating Model from Presentation
• The model is the “back end” or “business logic”, or “application”
• To minimize complexity, the model should know as little as possible about– How users interact with system– How many users are there– Any other models
Implementing MVC
• There are many choices– Where is list of views (observers) kept?– How is notification of change transmitted?– How manage web interface?– Should a view ask for (or should it be told of)
details about changes?
What Kind of Pattern is MVC?
• Design pattern proper?– Use it for structuring modest configurations
• Architectural pattern?– Use it for overall structure of a software
system, defining interactions among services, browsers etc.
2. Adapter Pattern
• You have an existing client (application) that uses an old interface to an existing support package.
• You are given a new interface to a new support package
• You need to produce an adapter so that:– The client can use the new interface instead of
the old one (without changing the client)
Illustration of Adapter Pattern
ClientOld
package
Old interfac
e
Client Adapter
Old interfac
e New package
New interfac
e
Implementing Adapter Pattern Using Object Composition
ClientOld Interface
Request()
New Interface
SpecificRequest()
Adapter
Request() SpecificRequest()
adapteeinherit