Your SlideShare is downloading. ×
Stoop 430-design patternsintro
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Stoop 430-design patternsintro

727

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
727
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. An Introduction to Design Patterns
  • 2. Goal
    • What are patterns?
    • Why?
    • Patterns are not god on earth
    • Example
  • 3. Design Patterns
    • Design patterns are recurrent solutions to design problems
    • They are names
      • Composite, Visitor, Observer...
    • There are pros and cons
  • 4.
    • Christoffer Alexander
      • “The Timeless Way of Building”, Christoffer Alexander, Oxford University Press, 1979, ISBN 0195024028
    • More advanced than what is used in computer science
      • only the simple parts got used.
      • pattern languages were skipped.
    From Architecture
  • 5. Why Patterns?
    • Elegant solutions that a novice would not think of
    • Generic
      • Independent on specific system type, language
    • Well-proven
      • Successfully tested in several systems
    • Simple
      • Combine them for more complex solutions
    • There are really stupid patterns (supersuper) in some books so watch out!!!
  • 6.
    • Reusable solutions to common problems
    • based on experiences from real systems
    • Names of abstractions above class and object level
    • a common vocabulary for developers
    • Handling of functional and non-functional aspects
      • separating interfaces/implementation, loose coupling between parts, …
    • A basis for frameworks and toolkits
    • basic constructs to improve reuse
    • Education and training support
    Patterns provide...
  • 7.
    • Pattern name
    • Increase of design vocabulary
    • Problem description
    • When to apply it, in what context to use it
    • Solution description (generic !)
    • The elements that make up the design, their relationships, responsibilities, and collaborations
    • Consequences
    • Results and trade-offs of applying the pattern
    Elements in a Pattern
  • 8. Example
    • The composite pattern...
    • Open the other file :)
  • 9. Patterns...
  • 10.
    • Creational Patterns
      • Instantiation and configuration of classes and objects
    • Structural Patterns
      • Usage of classes and objects in larger structures, separation of interfaces and implementation
    • Behavioral Patterns
      • Algorithms and division of responsibility
    • Concurrency
    • Distribution
    • Security
    Categories of Design Patterns
  • 11. Some Creational Patterns
    • Abstract factory
    • Builder
    • Factory Method
    • Prototype
    • Singleton
  • 12. Some Structural Patterns
    • Adapter
    • Bridge
    • Composite
    • Decorator
    • Façade
    • Flyweight
    • Proxy
  • 13. Some Behavioral Patterns
    • Chain of responsibility
    • Command
    • Interpreter
    • Iterator
    • Mediator
    • Memento
    • Observer
    • State
    • Strategy
    • Template Method
    • Visitor
  • 14. Alert!!! Design Patterns are invading
    • Design Patterns may be a real plague !
    • Do not apply them when you do not need them
    • Design Patterns make the software more complex
      • More classes
      • More indirections, more messages
    • Try to understand when NOT applying them!
  • 15. About Pattern Implementation
    • This is POSSIBLE implementation not a definitive one
    • Do not confuse structure and intent!!!
    • Patterns are about INTENT and TRADEOFFS
  • 16. Source
  • 17. Wrap-up
    • Patterns are names
    • Patterns are about tradeoffs
    • Know when not to apply them

×