Factory Method is used to create
one product only but Abstract Factory
is about creating families of related or dependent products.
Factory Method pattern exposes a method
to the client for creating the object whereas in case of Abstract Factory they expose a family of related objects which may
consist of these Factory methods.
Factory Method pattern hides the
construction of single object whereas Abstract
factory method hides the construction of a family of related objects. Abstract factories are usually
implemented using (a set of) factory methods.
AbstractFactory pattern uses composition
to delegate responsibility of creating object to another class while Factory
design pattern uses inheritance and relies on derived class or sub class to
create object.
The
idea behind the Factory Method pattern is that it allows for the case where a
client doesn't know what concrete classes it will be required to create at
runtime, but just wants to get a class that will do the job while
AbstractFactory pattern is best utilized when your system has to create
multiple families of products or you want to provide a library of products
without exposing the implementation details.
Real
Life Examples
Factory
Imagine
you are constructing a house and you approach a carpenter for a door. You give
the measurement for the door and your requirements, and he will construct a
door for you. In this case, the carpenter is a factory of doors. Your
specifications are inputs for the factory, and the door is the output or
product from the factory.
Abstract Factory
Now,
consider the same example of the door. You can go to a carpenter, or you can go
to a plastic door shop or a PVC shop. All of them are door factories. Based on
the situation, you decide what kind of factory you need to approach. This is
like an Abstract Factory.
Summary
Factory Pattern:
1.
Creates object through inheritance.
2.
Produce only one product.
3.
Implements code in the abstract creator that makes use of the concrete type
that sub-class produces.
Abstract Factory Pattern:
1.
Creates object through composition.
2.
Produce families of products.
3.
Concrete factories implements factory method to create product.
No comments:
Post a Comment