Factory design pattern is used when
we have a super class with multiple
sub-classes and based on input, we
need to return one of the sub-class.
This pattern take out the
responsibility of instantiation of a
class from client program to the
factory class
NumberFormat.getInstance()
Abstract Factory
get rid of if-else block and have a
factory class for each sub-class and
then an Abstract Factory class that
will return the sub-class based on the
input factory class
Singleton
Singleton pattern restricts the
instantiation of a class and ensures that
only one instance of the class exists in
the java virtual machine. The singleton
class must provide a global access point
to get the instance of the class.
build the object
step-by-step and provide a
method that will actually
return the final Object.
StringBuilder.append()
Prototype
Prototype pattern is used when the
Object creation is a costly affair and
requires a lot of time and resources
and you have a similar object already
existing. So this pattern provides a
mechanism to copy the original object
to a new object and then modify it
according to our needs
Structural Pattern
Adapter
its used so that two unrelated
interfaces can work together
Composite
When we need to create a structure in a way that the
objects in the structure has to be treated the same
way, we can apply composite design pattern.
Facade
Provide a unified interface to a set
of interfaces in a subsystem. Facade
Pattern defines a higher-level
interface that makes the subsystem
easier to use.
Decorator
used to modify the
functionality of an
object at runtime
Behavior Pattern
Observer
Define a one-to-many dependency between objects so that
when one object changes state, all its dependents are
notified and updated automatically