---
# System prepended metadata

title: Learn design pattern with Kirby
tags: [software developement]

---

---
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
