Lecture 13
DESIGN PATTERNS
Design patterns
In software engineering, a design pattern is a general repeatable
solution to a commonly occurring problem in software design.
A design pattern isn't a finished design that can be transformed
directly into code.
It is a description or template for how to solve a problem that can
be used in many different situations.
Creational-Factory Method
A Factory Pattern or Factory Method Pattern says that just define an
interface or abstract class for creating an object but let the
subclasses decide which class to instantiate. In other words,
subclasses are responsible to create the instance of the class.
The Factory Method Pattern is also known as Virtual Constructor.
Advantage of Factory Design Pattern
Factory Method Pattern allows the sub-classes to choose the type of
objects to create.
It promotes the loose-coupling by eliminating the need to bind
application-specific classes into the code. That means the code
interacts solely with the resultant interface or abstract class, so that it
will work with any classes that implement that interface or that
extends that abstract class.
Factory Method-UML
STEP 3
Creational-Singleton Method
Singleton Pattern says that just"define a class that has only one
instance and provides a global point of access to it".
In other words, a class must ensure that only single instance should
be created and single object can be used by all other classes
Advantage of Singleton design pattern
Saves memory because object is not created at each request. Only
single instance is reused again and again.
Usage of Singleton design pattern
Singleton pattern is mostly used in multi-threaded and database
applications. It is used in logging, caching, thread pools, configuration
settings etc.
Creational-Singleton Method
How to create Singleton design pattern?
To create the singleton class, we need to have static member of
class, private constructor and static factory method.
Static member: It gets memory only once because of static, it
contains the instance of the Singleton class.
Private constructor: It will prevent to instantiate the Singleton class
from outside the class.
Static factory method: This provides the global point of access to the
Singleton object and returns the instance to the caller
We're going to create a SingleObject class. SingleObject class have
its constructor as private and have a static instance of itself.
SingleObject class provides a static method to get its static instance
to outside world. SingletonPatternDemo, our demo class will use
SingleObject class to get a SingleObject object.
Creational-Singleton Method
Implementation
To be continued..