« Back to Computer Science

Design Patterns in Object-Oriented Programming

Key reference: Erich, Gamma; Helm Richard; Johnson Ralph; Vlissides John. Design Patterns (Addison-Wesley Professional Computing Series). Pearson Education. Kindle Edition.

The above shall henceforth be referred to as DPG4


Introduction

Design patterns (or more precisely, software design patterns) are reusable solutions to recurring challenges in software design. These solutions are reusable because they are generalised, i.e. they are abstract solutions that serve as templates or conceptual frameworks rather than exact solutions (hence the use of term “pattern”). Design patterns offer the following values:

ReusabilityDesign patterns are reusable solutions to common problems, reducing the need to rediscover solutions/solution components and promoting code reuse.
FlexibilityBeing generalised, design patterns are adaptable and can be tailored to specific requirements.
CommunicationDesign patterns establish a shared language among developers, improving communication and collaboration.
MaintainabilityDesign patterns conceptually integrate and help organise various parts of a solution, which can lead to code that is easier to understand, modify and extend over time, thus making it more maintainable.

References:

Explore

Ordered reference

General reference