---
layout: default
title: What is a Design Pattern?
category: info
description: Explanation of what a Design Pattern actually is.
---

{{ page.title }}
================

A design pattern is what it is.

---
layout: default
title: What is a Design Pattern?
category: info
description: Explanation of what a Design Pattern actually is.
---

{{ page.title }}
================

A design pattern is a way to organize and structure software. There are multiple
reasons for why a developer would want to use them. Here are a few examples:

## Readability

Readability in programming is a measurement of how easy it is to look at a piece
(however big) of code and understand what it is doing.

By taking software and changing it so that it fits well-known problems, it gives
people that aren't familiar with your code base (new developers, managers,
maintainers, etc.) an easier starting point and an easier time when trying to
understand the code.

Sometimes one of the hardest parts about understanding a code base is just
understanding why things are arranged the way they are. The more you can do to
put things in a logical and well-thought out manner, the less a person reading
the code will have to do to understand it. Design patterns give a tried and tested
format as guidelines for doing this.

## Maintainability

Another measurement that is closely tied to readability, is a way of looking at
how easy it is to add features and fix bugs in an existing project or code base.

While all programmers are wishful thinkers in that we hope to write code that
will solve the problem once and never be modified, that is rarely the case.

There are various design patterns (such as the [Strategy][strategy])

[strategy]: /

Add some info about what a design pattern is for
Add some info about what a design pattern is for
