---
title: Learn design pattern with Kirby
description: Learn how to use design pattern in your project
---
###### tags: `software developement`
# Learn Design Pattern with Kirby - 1
slide: https://hackmd.io/@YM0fzpcaQUe5gSGCway3_Q/SJLSR3IVt
## Reference
- https://refactoring.guru/
- https://sourcemaking.com/design_patterns
## What's a design pattern
A design pattern is a general repeatable solution to a commonly occurring problem in software design.
## Before we start
The truth is that you can work as a programmer without knowing about a single pattern.
Even in that case, you might be implementing some patterns without even knowing it.
## Why should I learn patterns
- Design patterns are a toolkit of tried and tested solutions to common problems.
- Even if you never encounter these problems, knowing patterns is still useful because it teaches you how to solve all sorts of problems.
- Design patterns define a common language that you and your teammates can use to communicate more efficiently.
## Classification of patterns
Design patterns differ by their complexity, level of detail and scale of applicability to the entire system being designed.
The most basic and low-level patterns are often called **idioms**.
The most universal and high-level patterns are **architectural pattern**.
All patterns can be categorized by their intent, or purpose.
- Creational patterns
provide object creation mechanisms that increase flexibility and reuse of existing code.
- Structural patterns
explain how to assemble objects and classes into large structures,
while keeping the structures flexible and efficient.
- Behavioral patterns
take care of effective communication and the assignment of responsibilities between objects.
---
### Thank you! :sheep:
You can find me on
- GitHub
- Line