# DESİGN PATTERNS

Design Patterns kavramı 1994 yılında **Design Patterns — Elements of Reusable Object-Oriented Software** adlı kitapta ortaya atılmıştır. Kitabın yazarları günümüzde **Gang of Four (GOF)** olarakta bilinen Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides'dir.

![](https://843841140-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MPTaJDw4ydhbhVvAsOm%2F-MPTaM0_Y1UdPD2LkwOB%2F-MPTk-bXS8teAbDR2soc%2FDesignPatternAouthorised.jpeg?alt=media\&token=831f1449-abfa-48b3-8622-74b01cde7d0c)

**Design patterns; bir yazılım projesinden sıklıkla karşılaştığımız benzer sorunlar üzerinden yola çıkarak Code Optimization'ı en iyi şekilde yapabilmemizi sağlayan yapılardır.** Bir design pattern, doğrudan koda dönüştürülebilen bitmiş bir tasarım değildir. Birçok farklı durumda kullanılabilecek bir sorunun nasıl çözüleceğine dair bir açıklama veya şablon sunar. Dünya genelinde 250’den fazla tasarım kalıbı bulunmasına rağmen 23 tanesi standart olarak kabul edilmiştir. Bunlarda yapısına ve kullanılış amacına göre 3 ana başlık altında toplanmıştır.

![](https://843841140-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MPTaJDw4ydhbhVvAsOm%2F-MPTaM0_Y1UdPD2LkwOB%2F-MPTcD0S4db3dErXE82I%2FDesingPatterns.png?alt=media\&token=54161a63-d5fc-4a93-a53b-291a773abf67)

Desing Patterns 3 ana başlık altında incelenir;

1. **Creational (Oluşturucu) tasarım desenleri**\
   Nesnelerin nasıl yaratılacağı hakkında öneriler sunar.
2. &#x20;**Structural**  (**Yapısal) tasarım desenleri**\
   Sınıflar arasındaki ilişkileri belirleme önerileri sunar, Nasıl türetilmeli, hangi nesneleri içermeli, sınıflar birbirlerini nasıl bağlı olmalı gibi soruların cevaplarını yanıtlar.
3. &#x20;**Behavioral** (**Davranışsal) tasarım desenleri**\
   Soruna göre nesneler arası ortak haberleşmeyi en iyi şekilde kurmamıza öneriler sunar


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ridvanorun.gitbook.io/desing-patterns/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
