Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,030
On Slideshare
1,030
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
28
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