Design Patterns (Tasarim Kaliplari, Tasarim Desenleri)
Yazilim muhendisliginde bir tasarim kalibi, yazilim tasariminda yaygin olarak ortaya cikan bir soruna genel olarak tekrarlanabilir bir cozumdur. Tasarim deseni, dogrudan koda donusturulebilen bitmis bir tasarim degildir. Bircok farkli durumda kullanilabilecek bir sorunun nasil cozulecegine iliskin bir aciklama veya sablondur.
Tasarim Kaliplarinin Kullanimlari
Tasarim kaliplari, test edilmis, kanitlanmis gelistirme paradigmalari saglayarak gelistirme surecini hizlandirabilir. Etkili yazilim tasarimi, uygulamada daha sonra gorunur hale gelmeyebilecek konularin dikkate alinmasini gerektirir. Tasarim kaliplarinin yeniden kullanilmasi, buyuk sorunlara neden olabilecek ince sorunlari onlemeye yardimci olur ve kaliplara asina olan kodlayicilar ve mimarlar icin kod okunabilirligini artirir.
Cogu zaman, insanlar yalnizca belirli yazilim tasarim tekniklerinin belirli sorunlara nasil uygulanacagini anlar. Bu tekniklerin daha genis bir problem yelpazesine uygulanmasi zordur. Tasarim kaliplari, belirli bir soruna bagli ozellikler gerektirmeyen bir bicimde belgelenen genel cozumler saglar.
Ayrica kaliplar, gelistiricilerin yazilim etkilesimleri icin iyi bilinen, iyi anlasilan adlar kullanarak iletisim kurmasina olanak tanir. Ortak tasarim desenleri zaman icinde gelistirilebilir, bu da onlari gecici tasarimlardan daha saglam hale getirir.
Tasarim kaliplari 3 ayri kategoride toplanmaktadir. Bunlar;
- Creational Design Patterns (Yaratici Tasarim Kaliplari)
- Structural Design Patterns (Yapisal Tasarim Kaliplari)
- Behavioral Design Patterns (Davranissal Tasarim Kaliplari)
Creational Design Patterns (Yaratici Tasarim Kaliplari)
Bu tasarim kaliplari tamamen sinif somutlastirma ile ilgilidir. Bu model ayrica sinif yaratma kaliplari ve nesne yaratma kaliplarina ayrilabilir. Sinif olusturma kaliplari, ornekleme surecinde kalitimi etkin bir sekilde kullanirken, nesne olusturma kaliplari isi yapmak icin yetkilendirmeyi etkili bir sekilde kullanir.
Asagidaki tasarim kaliplari Yaratici tasarim kaliplarina ornektir;
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
Structural Design Patterns (Yapisal Tasarim Kaliplari)
Bu tasarim kaliplari tamamen Sinif (Class) ve Nesne (Object) kompozisyonu ile ilgilidir. Yapisal sinif olusturma kaliplari, arabirimleri olusturmak icin kalitimi kullanir. Yapisal nesne kaliplari, yeni islevsellik elde etmek icin nesneleri olusturmanin yollarini tanimlar.
Asagidaki tasarim kaliplari Yapisal tasarim kaliplarina ornektir;
Behavioral Design Patterns (Davranissal Tasarim Kaliplari)
Bu tasarim kaliplarinin tamami Class'in nesne iletisimi ile ilgilidir. Davranis kaliplari, nesneler arasindaki iletisimle en ozel olarak ilgilenen kaliplardir.
- Chain of responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Null Object
- Observer Pattern
- State
- Strategy
- Template method
- Visitor
Icindekiler
- Singleton Pattern
- Proxy Pattern
- Provider Pattern
- Container/ Presentational Pattern
- Module Pattern
- Render Props Pattern
- Builder Pattern
- Prototype Pattern
- Facade Pattern
- Decorator Pattern
- Adapter Pattern
- Factory Pattern
- HOC Pattern
- Composite Pattern
- Abstract Factory
- Observer Pattern
- Bridge Pattern
- Mixin Pattern
- Hooks Pattern
- Rendering Patterns
Nasil Katkida bulunabilirim?
- Projeyi forklayin.
- Issues bolumunden bostaki bir taska isi aldiginizi yorum olarak belirtip bir branch acin ve cevirinize baslayabilirsiniz.
- Yorumda belirtmeniz onemlidir cunku bir baskasi ayni taski alip cevirisini yapabilir. Bu durumda kimse magdur olsun istemeyiz.
- Issuelardaki konular disinda farkli bir pattern cevirisi yapacaksaniz kendiniz de issue acip cevirinize baslayabilirsiniz.
- Ceviriniz bittikten sonra pull request acabilirsiniz.
- Ceviri disinda destek olmak isterseniz farkli programlama dillerinde halihazirda cevirisi bulunan patternlere kod ornekleri paylasabilirsiniz.
Katkida bulunurken dikkat edilmesi gerekenler
- Readme dosyasina kod bloklarini image olarak yuklemeyiniz. Ornek kullanim
console.log("Hello World") - Her bir patternin "Design Patterns" klasorunde patternin adiyla klasoru acilmalidir.
- Gorsel dosyalari yine patternin kendi klasoru altinda assets klasorunde depolayiniz.
- Son olarak ana readme dosyasinda cevirisini yaptiginiz patternin klasorune ilgili pattern Icindekiler bolumunde ve patternin ilgili kategorisinde linklenmelidir. Bkz. Creational Design Patterns, Structural Design Patterns, Behavioral Design Patterns.
- Bir ceviri eklerken kaynak belirtmeyi unutmayiniz.
Katkida Bulunanlar
Baris Tunar |
Serdar GUL |
Aycan Ogut |
Cengiz C. Mataraci |
Dogancan Ulgu |
Furkan Yesilyurt |
Ismail Gunay |
Olcay Kaplan |
Haticesurumlu |
Deniz Cansever |
kadorek |
Burak |