introduction to design patterns n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Introduction to Design Patterns PowerPoint Presentation
Download Presentation
Introduction to Design Patterns

Loading in 2 Seconds...

play fullscreen
1 / 4

Introduction to Design Patterns - PowerPoint PPT Presentation


  • 137 Views
  • Uploaded on

Introduction to Design Patterns. This lecture will introduce the idea of design patterns What they are and how they are structured We’ll talk about specific patterns several times this semester Today: Iterator and Factory Method After we’ve studied C++ objects: Adapter, Memento, Observer

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Introduction to Design Patterns


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
    Presentation Transcript
    1. Introduction to Design Patterns • This lecture will introduce the idea of design patterns • What they are and how they are structured • We’ll talk about specific patterns several times this semester • Today: Iterator and Factory Method • After we’ve studied C++ objects: Adapter, Memento, Observer • After we’ve studied C++ memory: Singleton, Prototype, Visitor

    2. What’s a Design Pattern? • A design pattern has a name • So when someone says “Adapter” you know what they mean • So you can communicate design ideas as a “vocabulary” • A design pattern describes the core of a solution to a recurring design problem • So you don’t have to reinvent known design techniques • So you can benefit from others’ (and your) prior experience • A design pattern is capable of generating many distinct design decisions in different circumstances • So you can apply the pattern repeatedly as appropriate • So you can work through different design problems using it

    3. Iterator Pattern • Problem • Want to access aggregated elements sequentially • E.g., traverse a container of values, objects etc. and print them out • Context • Don’t want to know/manage details of how they’re stored • E.g., could be in an array, list, vector, or deque • Solution core • Provide a common interface for iteration over a container: (1) start; (2) access; (3) increment; (4) termination • Consequences • Frees user from knowing details of how elements are stored • Decouples containers from algorithms (crucial in C++ STL) • Example list<int>::iterator

    4. Problem You want a type to create a related type polymorphically E.g., a container should create appropriate begin and end iterators Context Each type knows which related type it should create Solution core Polymorphic creation E.g., abstract method that different types override E.g., provide traits and common interface (as in the STL we’ll use) Consequences Type that’s created matches type(s) it’s used with Example vector<double> v; vector<double>::iterator i = v.begin(); Factory Method Pattern