15
www.psclistens.com Design Patterns in Java and .NET Tim Murphy Technical Specialist Mike Vogt Vice President of Architecture

Chicago Information Technology Architects Group - Design Patterns

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Chicago Information Technology Architects Group - Design Patterns

www.psclistens.com

Design Patterns in Java and .NET

Tim MurphyTechnical Specialist

Mike VogtVice President of Architecture

Page 2: Chicago Information Technology Architects Group - Design Patterns

Objective• Show the usefulness of Design Patterns

when developing applications and how they apply no matter what the platform.

Page 3: Chicago Information Technology Architects Group - Design Patterns

Agenda• History of patterns• What are patterns• Why are patterns important• Explore 6 common patterns• Anti-Patterns

Page 4: Chicago Information Technology Architects Group - Design Patterns

History Of Patterns• Gang Of Four• POSA – Patterns of

Software Architecture• Patterns of Enterprise

Application Architecture

Page 5: Chicago Information Technology Architects Group - Design Patterns

What Are Patterns

• Pattern Name• Problem• Solution• Consequences

Page 6: Chicago Information Technology Architects Group - Design Patterns

Why Are Patterns Important• Common vocabulary• Repositories of common solutions

Page 7: Chicago Information Technology Architects Group - Design Patterns

Factory Method Pattern• Method for object creation• Lets subclasses decide which classes

to create

Page 8: Chicago Information Technology Architects Group - Design Patterns

Decorator Pattern

• Attach additional responsibilities to an object dynamically

• Allows behavior to be added via “wrappers”

• Avoids extensive inheritance hierarchies

cost()

Whip

cost()

Mocha

cost()DarkRoast

Page 9: Chicago Information Technology Architects Group - Design Patterns

Adapter Pattern• Allows a system to use methods that

do not match their interface

Page 10: Chicago Information Technology Architects Group - Design Patterns

Visitor Pattern• A way of separating an algorithm from

an object structure it operates on.• One can add new operations to

existing object structures without modifying those structures<<interface>>

CarElement

+ accept(CarElementVisitor v)

Wheel Engine Body Car

Page 11: Chicago Information Technology Architects Group - Design Patterns

Strategy Pattern• Interchangeable algorithms

Page 12: Chicago Information Technology Architects Group - Design Patterns

Composite Pattern• Allows you to compose objects into

tree structures to represent whole-part hierarchies.

• Lets clients treat individual objects and compositions of objects uniformly.

Node

Leaf Leaf Leaf

<<interface>>Component

+ operation+ add(Component c)+ remove(Component c)+ getChild(int i)

Leaf

+ operation()

Composite

add, remove, getChild, operation

Client

Page 13: Chicago Information Technology Architects Group - Design Patterns

Anit-Patterns• One pattern to rule them all• Loosey Goosey

Page 14: Chicago Information Technology Architects Group - Design Patterns

ResourcesDesign Patterns: Elements of Reusable Object-Oriented Software – Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

Head First Design Patterns – Eric Freeman and Elisabeth Freeman

Design Patterns In C# - Steven John Metsker

Page 15: Chicago Information Technology Architects Group - Design Patterns

Thank You!Blogs –

geekswithblogs.net/tmurphy

Email [email protected]@psclistens.com

Twitter –@twmurph@mvogt99

PSC’s websitewww.psclistens.com