© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Generator Design Patterns: The Factory Patterns.

Slides:



Advertisements
Similar presentations
More Interfaces, Dynamic Binding, and Polymorphism Kirk Scott.
Advertisements

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 1- 1.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 8- 1.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 1.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 2- 1.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 4- 1.
 Consists of Creational patterns  Each generator pattern has a Client, Product, and Generator.  The Generator needs at least one operation that creates.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 1.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 18 Indexing Structures for Files.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Prototype Pattern Creational Pattern Specify the kinds of objects to create using a prototypical instance, and create new objects by copy this prototype.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Object, Object- Relational, and XML: Concepts, Models, Languages,
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Design Patterns Based on Design Patterns. Elements of Reusable Object-Oriented Software. by E.Gamma, R. Helm, R. Johnson,J. Vlissides.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Design Patterns Module Name - Object Oriented Modeling By Archana Munnangi S R Kumar Utkarsh Batwal ( ) ( ) ( )
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5 Part 1 Conditionals and Loops.
Pattern Abstract Factory
Creational Patterns Making Objects The Smart Way Brent Ramerth Abstract Factory, Builder.
Dependency Injection and Model-View-Controller. Overview Inversion of Control Model-View-Controller.
Design Patterns.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Reactor Design Patterns: Command and Observer.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 11.9 Curvature and Normal Vectors.
Advanced Programming Rabie A. Ramadan 7.
Abstract Factory Design Pattern making abstract things.
Factory Method A Creational Design Pattern. Factory Method Key Features  Defines an interface for creating objects without needing to know each object’s.
Design Pattern. The Observer Pattern The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 11.5 Lines and Curves in Space.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 4 Applications of the Derivative.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 1 Functions.
The Factory Patterns SE-2811 Dr. Mark L. Hornick 1.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Advanced UML Class Diagrams.
Factory Method Chris Colasuonno Also known as “Virtual Constructor”
Creational Pattern: Factory Method At times, a framework is needed to standardize the behavior of objects that are used in a range of applications, while.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 13 Creational Design Pattern SWE 316: Software Design and Architecture.
DESIGN PATTERNS Sanjeeb Kumar Nanda 30-Aug What is a pattern? Pattern is a recurring solution to a standard problem Each Pattern describes a problem.
Billy Bennett June 22,  Intent Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 11.6 Calculus of Vector-Valued Functions.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Mid-Level Design Patterns: Iteration and Iterators.
Advanced Object-oriented Design Patterns Creational Design Patterns.
Reference – Object Oriented Software Development Using Java - Jia COP 3331 Object Oriented Analysis and Design Chapter 10 – Patterns Jean Muhammad.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Mid-Level Design Patterns Categories.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Façade and Mediator.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Designing with State Diagrams.
Overview of Creational Patterns ©SoftMoore ConsultingSlide 1.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Adapters and Proxy.
Design Patterns Creational Patterns. Abstract the instantiation process Help make the system independent of how its objects are created, composed and.
Factory Method. Intent/Purpose Factory Method is used to deal with a problem of creating objects without specifying the EXACT class of object that we.
Generator Design Patterns: Singleton and Prototype
© 2015 Pearson Education, Inc.
Factory Patterns 1.
Software Design and Architecture
More Interfaces, Dynamic Binding, and Polymorphism
© 2015 Pearson Education, Inc.
Object Oriented Design Patterns - Creational Patterns
Prototype Pattern 1.
Ms Munawar Khatoon IV Year I Sem Computer Science Engineering
Lesson 5: More on Creational Patterns
Design Patterns Imran Rashid CTO at ManiWeber Technologies.
Presentation transcript:

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Generator Design Patterns: The Factory Patterns

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2 Objectives  To present the structure, behavior, and characteristics of generator patterns  To discuss the uses of factory methods  To present the Factory Method and Abstract Factory design patterns

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 3 Topics  Instance creation  Generator patterns  Factory methods  The Factory Method pattern  The Abstract Factory pattern

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 4 Instance Creation  There are two ways to create objects: Instantiating a class using one of its constructors Cloning an existing object  Clients may use another class to create an instance on their behalf; this is the essence of the generator pattern category.  Analogy: a tailor

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 5 Generator Pattern Structure The Client must access the Generator that creates an instance of the Product and provides it to the Client

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 6 Broker Pattern Behavior

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7 Generator Pattern Advantages  Product Creation Control—A generator can mediate access to constructors so that only a certain number or type of product instances are created.  Product Configuration Control—A generator can take responsibility for configuring product instances.  Client and Product Decoupling—A generator can determine how to create product instances for a client.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8 Factory Methods A Generator must have an operation that creates and returns Product instances. A factory method is a non- constructor operation that creates and returns class instances.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 Factory Method Capabilities  Access to product constructors can be restricted.  Private data can be provided to new product objects.  Product objects can be configured after creation.  Product class bindings can be deferred until runtime.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 10 The Factory Patterns  All generator patterns have factory methods.  Factory patterns configure participating classes in certain ways to decouple the client from the product.  Interfaces are used to Change the generator Change the product instances  Analogy: automobile factories

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 11 The Factory Patterns  Factory Method—Uses interfaces and abstract classes to decouple the client from the generator class and the resulting products.  Abstract Factory—Has a generator that is a container for several factory methods, along with interfaces decoupling the client from the generator and the products.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 12 The Factory Method Pattern  The generator usually contains both factory methods and other methods.  Analogy: different auto factories producing the same kind of automobile (SUVs for example).

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 13 Factory Pattern Structure

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 14 Factory Method Behavior

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 15 The Iterator and Factory Method Patterns

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 16 When to Use the Factory Method Pattern  Use the Factory Method pattern when there is a need to decouple a client from a particular product that it uses.  Use the Factory Method to relieve a client of responsibility for creating and configuring instances of a product.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 17 The Abstract Factory Pattern  A factory class is one that contains only factory methods for different (though usually related) products.  The Abstract Factory generator class is a factory class. Restricts the Factory Method pattern because the generator holds only factory methods Generalizes the Factory Method pattern because the generator creates several different kinds of product  Analogy: auto factory with assembly lines for different kinds of vehicles

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 18 Abstract Factory Pattern Structure

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 19 Abstract Factory Pattern Behavior

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 20 Abstract Factory Pattern Example

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 21 When to Use the Abstract Factory Pattern  Use the Abstract Factory pattern when clients must be decoupled from product classes. Especially useful for program configuration and modification  The Abstract Factory pattern can also enforce constraints about which classes must be used with others.  It may be a lot of work to make new concrete factories.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 22 Summary  Generator patterns use a Generator class to produce and configure instances of a Product class for a Client.  The Factory Method pattern uses interfaces and abstract classes to decouple clients from generators and products.  The Abstract Factory pattern has a factory class whose factory methods create instances of different but related products.