Design Patterns in Python
A Design Pattern is a re-usable solution to a commonly faced design problem. Design Patterns offer solutions to common problems which software developers face during software development. These outline best practices as practised by developers working in the Object Oriented paradigm.
Gang of Four
Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides co-authored a software engineering book entitled Design Patterns: Elements of Reusable Object-Oriented Software. The book describes 23 software design patterns, with examples in C++ and Smalltalk. It is widely regarded as a milestone in the field of Software Engineering, initiating the adaptation of design patterns. These 4 authors are popularly known as the Gang of Four or GoF.
Types of Design Patterns
Design Patterns are broadly classified into three categories:
- Creational Design Patterns: Patterns which offer best ways to instantiate classes.
- Structural Design Patterns: Patterns which offer best ways to organize class hierarchy.
- Behavioural Design Patterns: Patterns which offer best ways for handling communication between objects.
List of Design Patterns
Following is a list of design patterns covered in this course:
- Creational Design Patterns
- Structural Design Patterns
- Behavioural Design Patterns
- Architectural Pattern
Pre-requisites
You can easily follow along the course if you know the basics of Python & Object Oriented Programming in Python. I am providing links to both these knowledge bases.