1 / 12

Builder A Creational Design Pattern

Builder A Creational Design Pattern. A Presentation by Alex Bluhm And. What are Creational Design Patterns?. Creational Design Patterns. Abstract instantiation process Flexibility in what’s created, who creates it, how it’s created and when Patterns: Abstract Factory Builder

Download Presentation

Builder A Creational Design Pattern

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BuilderA Creational Design Pattern A Presentation by Alex Bluhm And

  2. What are Creational Design Patterns?

  3. Creational Design Patterns • Abstract instantiation process • Flexibility in what’s created, who creates it, how it’s created and when • Patterns: • Abstract Factory • Builder • Factory Method • Prototype • Singleton

  4. Builder Design Pattern • Separates the construction of a complex object from its representation • Same construction process can create different representations • Bob says… Builders specify abstract interfaces for creating parts of a Product object

  5. Participants in Builder Pattern • Builder • ConcreteBuilder • Director • Product • Builder • ConcreteBuilder • Director • Product

  6. Director Builder construct() buildPartA()buildPartB() for all parts in structure { builder->buildPart() } ConcreteBuilder buildPartA()buildPartB()getResult() Structure for Participants Client Product

  7. aClient aDirector aConcreteBuilder new ConcreteBuilder new Director(aConcreteBuilder) construct() buildPartA() buildPartB() buildPartC() getResult() Builder Pattern Interaction

  8. When to use a Builder Pattern • When the algorithm for building a complex object should be independent of the parts that make up the object and how they’re assembled • When the construction process must allow different representations for the object that’s constructed • When building a composite structural object

  9. Key Consequence of Builder Pattern • Vary a product’s internal representation • Isolates code for construction and representation Don’t forget that the Builder Design Pattern also gives you finer control over the construction process!

  10. How to code a builder • Assembly and Construction Interface • No abstract class for products • Empty methods as default in Builder Class MazeBuilder { Public: virtual void BuildMaze() { } virtual void BuildRoom(int room) { } virtual void BuildDoor(int roomFrom, int roomTo) { } virtual Maze* GetMaze() { return 0;} Protected: MazeBuilder(); };

  11. Other Creational Patterns • Object Creation • Abstract Factory • Prototype • Singleton • Class Creation • Factory Method

  12. Special Thanks • Design Patterns. Elements of Reusable Object-Oriented Software • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides • Provider of Design Pattern powerpoint slides online. (http://vik.ktu.lt/moduliai/) • Bob the Builder

More Related