Presentation is loading. Please wait.

Presentation is loading. Please wait.

Design Patterns Ric Holt & Sarah Nadi U Waterloo, March 2010.

Similar presentations


Presentation on theme: "Design Patterns Ric Holt & Sarah Nadi U Waterloo, March 2010."— Presentation transcript:

1 Design Patterns Ric Holt & Sarah Nadi U Waterloo, March 2010

2 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. 2

3 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. 3

4 Four Example Patterns 1.MVC (Model View Controller) 2.Adapter 3.Facade 4.Factory 4

5 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). 5

6 Example MVC a b c a b c [Mancoridis picture] Views Controller Model abc 503020 a = 50% b = 30% c = 20% 6

7 Example MVC a b c a b c [Mancoridis picture] Views Controller Model abc 503020 a = 50% b = 30% c = 20% See Interact 7

8 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 8

9 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 9

10 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? 10

11 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. 11

12 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) 12

13 Illustration of Adapter Pattern Client Old package Old interface Client Adapter Old interface New package New interface 13

14 Implementing Adapter Pattern Using Object Composition Client Old Interface Request() New Interface SpecificRequest() Adapter Request() SpecificRequest() adaptee inherit 14

15 Advantages of Adapter Pattern Can change behavior of existing software without changing its source code Can be used for legacy software Do not need access to old source code 15

16 3. Facade Pattern A facade provides a single simplified interface to a larger part of the system (a subsystem) The facade makes this subsystem more readable and easier to understand Having facades minimizes communication and dependencies between subsystems 16

17 Structure of the Facade Pattern 17 Subsystem Classes Facade [Mancoridis picture]

18 Adapter vs. Facade An Adapter is used when the wrapper must respect a particular interface and must support a polymorphic behavior. On the other hand, a facade is used when one wants an easier or simpler interface to work with 18

19 4. Factory Pattern A creational pattern dealing with creating objects without knowing their concrete class It defines an interface for creating an object, but let the subclasses decide which class to instantiate Useful when concrete class of object should be decided at runtime according to parameters 19

20 How does it work 20 Product ProductA ProductB ProductFactory createProduct(in param) : Product Produces different subclasses of Product according to parameters inherits


Download ppt "Design Patterns Ric Holt & Sarah Nadi U Waterloo, March 2010."

Similar presentations


Ads by Google