Python Design Pattern
This tutorial will discuss what Design Pattern is and how we can implement using the Python programming language. We will also explain several types of design patterns. We will explore the different approaches to solve the Python problems. Python is a high-level, dynamic type language and popularly used in almost every possible technical domain.
What is Design Pattern?
The design pattern is a technique which used by the developer to solve the commonly occurring software design. In simple word, it is a predefine pattern to solve a recurring problem in the code. These patterns are mainly designed based on requirements analysis.
The design pattern is a part of the software development. It is a general repeatable solution for the potential problem in software development. We can follow the patterns details and apply a solution which suits our code.
We may often confuse the patterns and algorithm, but both are separate approaches to solve repetitive problems. Algorithms generally define the clear set of the solution that can be implemented in some problems, where the patters are high-level description of the solution.
For example - An algorithm is like a cooking recipe: we have a clear set of ingredients (or set of solutions) to cook something (problems or goals). On the other side, a pattern is like a blueprint: we can see what the result and its features are, but we can modify the order of implementation.
Configuration of Design Pattern
In the below diagram, we describe the basic structure of the design pattern documentation. It is focused on what technology we are using to solve the problems and in what ways.
In the above diagram-
Pattern Name - It is used to define the pattern in a shortly and effectively.
Intent/ Motive - It defines the goal or what the pattern does.
Applicability - It defines all the possible areas where the pattern is applicable.
Participants and Consequences -It consists of classes and objects used in the design pattern with the list of consequences that exist with the pattern.
History of Patterns
Design patterns are the set of the solution of common problems in object-oriented design. When the problem's solution is repeated again and again in the various projects, someone eventually puts a name and defines the solution in detail. That is how the pattern gets recognized.
Christopher Alexander has described the concept of the pattern for the first time in the book named A Pattern Language: Towns, Building, and Construction.
This book defines a 'language' for designing the urban environment. The language is nothing but the patterns.
The four authors: Erich Gamma, John, Vlissiders, Ralph Johnson, and Richard Helm, were picked the idea of a pattern language. Later, they published the book named Design Patterns: Elements of Reusable Object-Oriented Software. This book contains the concept of design patterns using the programming language.
The book featured the 23 useful various problems of object-oriented designs; It gained the much popularity among the programmers and became the best seller book very quickly.
Interesting Fact - This book has a very long name so people started to call it "The book of gang of four" which was soon summarized to simply "The GoF book".
Many other object-oriented patterns are discovered after this book. Very soon, the pattern approach became very famous in the programming fields. There are many others patterns available apart from object-oriented design as well.
Advantages of Using Design Pattern
The advantages of using the design patterns are given below.
Design Pattern in Python
We are all familiar with Python's feature; if someone does not, let's have a brief introduction - Python is a high-level, open-source, and dynamic typed language. It has English-like syntax and easy to learn. It provides numerous libraries that support a variety of designs.
We are listed below the design patterns that are supported by Python. We will use these design patterns in our tutorial.
Importance of Learn Design Pattern
Many of the software developers might work for many years without knowing about any single pattern. It can also happen we might be implementing a pattern without even knowing it. So, here the question arises, why should we learn the design pattern? Let's look at the following points, which light up the importance of design patterns in development.
We will explore more about the design patterns in the upcoming tutorial.