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.
Cookies are important to the proper functioning of a site. To improve your experience, we use cookies to remember log-in details and provide secure log-in, collect statistics to optimize site functionality, and deliver content tailored to your interests. Click Agree and Proceed to accept cookies and go directly to the site or click on View Cookie Settings to see detailed descriptions of the types of cookies and choose whether to accept certain cookies while on the site.
About Author
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.