Introduction to Design Pattern and Its Advantages

Posted By : Atul Bhaskar | 30-Apr-2019

Introduction

In Computer Science, a software design pattern is a reusable, generic solution to a most commonly occurring problem within a given context in software design. It is not a complete design which can get transformed directly into the source code. It is like a template for how to solve a problem that can get used in different software. Design patterns are usually best practices that the developer have to use to solve common problems while designing an application or system. Design patterns first originated as an architectural concept by Christopher Alexander in 1977.


Design pattern speeds up the development process by providing tested, proven development in first paradigms. Effective software design requires considering issues that may not become visible on the first level in the implementation. The freshly written code can often have hidden subtle issues that take time to get detected, issues that sometimes can cause major problems later on. Using design patterns helps to prevent such undetected issues, and it also improves code readability for developers who are familiar with the patterns.

 

In general, a pattern can get planned newly into each application that uses it. Since some authors believe that this as a step backward from software reuse as provided by components, researchers have worked to turn patterns into components. Software Design patterns give general solutions, documented in a format that is not tied to a particular problem.

 

Types of Design Patterns


Mainly there are three types of design patterns, which have further sub-parts:

 

1.Creation Design Pattern

Creation design patterns are about class instantiation and object creation. These patterns will be further subdivided into Class-creational patterns and object-creation patterns. Class-creation patterns use inheritance effectively and efficiently in the instantiation process, object-creation patterns use delegation effectively to get the job done.

Some of Creation design patterns are Factory Method, Abstract Factory, Builder, Singleton, Object Pool, and Prototype.

 

2. Structural Design Pattern

Structural design patterns are about organizing different classes and objects to form larger structures and provide new functionality.
Some of the Structural design patterns are Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Private Class Data, and Proxy.

 

3. Behavioural Design Pattern

Some of the Behavioral patterns are the series of responsibility, Command, Interpreter, Iterator, Mediator, Memento, Null Object, Observer, State, Strategy, Template method, and Visitor


Advantages of Software Design pattern

Patterns are reusable in multiple projects.
Provides solutions that help to define the software system architecture.
Provides flexibility and transparency to the design of an application.
These are well-proven and tested solutions as they have been built upon the knowledge and experience of expert software developers.
Design patterns provide clarity to the system architecture and the possibility of building a better system.

About Author

Author Image
Atul Bhaskar

Atul Bhaskar is Associate Consultant-Development. He is good in Java, Spring, Hibernate, javascript, angularjs. Seasoned Java Developer with 1+ years of experience developing highly available, scalable web applications across the J2EE stack.

Request for Proposal

Name is required

Comment is required

Sending message..