1.What are Design Patterns?
Design patterns represent the best practices used by experienced object-oriented software developers. Design patterns are solutions to general problems that software developers faced during software development. These solutions were obtained by trial and error by numerous software developers over quite a substantial period of time.
2.What is Gang of Four (GOF)?
In 1994, four authors Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides published a book titled Design Patterns – Elements of Reusable Object-Oriented Software which initiated the concept of Design Pattern in Software development. These authors are collectively known as Gang of Four (GOF).
3.Name types of Design Patterns?
Design patterns can be classified in three categories: Creational, Structural and Behavioral patterns.
Creational Patterns – These design patterns provide a way to create objects while hiding the creation logic, rather than instantiating objects directly using new opreator. This gives program more flexibility in deciding which objects need to be created for a given use case.
Structural Patterns – These design patterns concern class and object composition. Concept of inheritance is used to compose interfaces and define ways to compose objects to obtain new functionalities.
Behavioral Patterns – These design patterns are specifically concerned with communication between objects.
4.What are J2EE Patterns?
These design patterns are specifically concerned with the presentation tier. These patterns are identified by Sun Java Center.
5.What is Factory pattern?
Factory pattern is one of most used design pattern in Java. This type of design pattern comes under creational pattern as this pattern provides one of the best ways to create an object.
In Factory pattern, we create object without exposing the creation logic to the client and refer to newly created object using a common interface.
6.What is Abstract Factory pattern?
Abstract Factory patterns work around a super-factory which creates other factories. This factory is also called as factory of factories. This type of design pattern comes under creational pattern as this pattern provides one of the best ways to create an object.
In Abstract Factory pattern an interface is responsible for creating a factory of related objects without explicitly specifying their classes. Each generated factory can give the objects as per the Factory pattern.
7.What is Singleton pattern?
Singleton pattern is one of the simplest design patterns in Java. This type of design pattern comes under creational pattern as this pattern provides one of the best ways to create an object.
This pattern involves a single class which is responsible to create an object while making sure that only single object gets created. This class provides a way to access its only object which can be accessed directly without need to instantiate the object of the class.
8.How can you create Singleton class in java?
It is two step process. First, make the constructor private so that new operator cannot be used to instantiate the class. Return an object of the object if not null otherwise create the object and return the same via a method.
9.What are the difference between a static class and a singleton class?
Following are the differences between a static class and a singleton class.
A static class can not be a top level class and can not implement interfaces where a singleton class can.
All members of a static class are static but for a Singleton class it is not a requirement.
A static class get initialized when it is loaded so it can not be lazily loaded where a singleton class can be lazily loaded.
A static class object is stored in stack whereas singlton class object is stored in heap memory space.
10.Can we create a clone of a singleton object?
Yes.