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!

Stoop 430-design patternsintro

on

  • 970 views

 

Statistics

Views

Total Views
970
Views on SlideShare
970
Embed Views
0

Actions

Likes
0
Downloads
28
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Stoop 430-design patternsintro Stoop 430-design patternsintro Presentation Transcript

    • An Introduction to Design Patterns
    • Goal
      • What are patterns?
      • Why?
      • Patterns are not god on earth
      • Example
    • Design Patterns
      • Design patterns are recurrent solutions to design problems
      • They are names
        • Composite, Visitor, Observer...
      • There are pros and cons
      • 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
    • 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!!!
      • 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...
      • 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
    • Example
      • The composite pattern...
      • Open the other file :)
    • Patterns...
      • 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
    • Some Creational Patterns
      • Abstract factory
      • Builder
      • Factory Method
      • Prototype
      • Singleton
    • Some Structural Patterns
      • Adapter
      • Bridge
      • Composite
      • Decorator
      • Façade
      • Flyweight
      • Proxy
    • Some Behavioral Patterns
      • Chain of responsibility
      • Command
      • Interpreter
      • Iterator
      • Mediator
      • Memento
      • Observer
      • State
      • Strategy
      • Template Method
      • Visitor
    • 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!
    • About Pattern Implementation
      • This is POSSIBLE implementation not a definitive one
      • Do not confuse structure and intent!!!
      • Patterns are about INTENT and TRADEOFFS
    • Source
    • Wrap-up
      • Patterns are names
      • Patterns are about tradeoffs
      • Know when not to apply them