Bu makalemizde, var olan bir nesnenin kopyasını çıkartarak yeni bir nesne oluşturma süreci ile ilgilenen Prototype tasarım kalıbını inceleyeceğiz. Bu serinin genelinde olduğu gibi öncelikle Prototype tasarımın kalıbının ne olduğunu, hangi durumlarda hangi sorunlara çözüm sunduğunu konuşacak, sonrasında gelen bir talebe istinaden herhangi bir tasarım kalıbı kullanmadan bir çözüm üretecek, ardından bu çözümün problemlerini ve hangi yazılım tasarım prensiplerine aykırı olduğunu tartışacak, son olarak da Prototype tasarım kalıbı ile aynı talebe uygun bir çözüm üretmeye çalışacağız.
Bu makalemizde, nesnelerin karmaşık oluşturma süreçlerini adımlara bölerek, nesne oluşturma işlemini daha yönetilebilir ve anlaşılır hale getiren Builder tasarım kalıbını inceleyeceğiz. Bu serinin genelinde olduğu gibi öncelikle Builder tasarımın kalıbının ne olduğunu, hangi durumlarda hangi sorunlara çözüm sunduğunu konuşacak, sonrasında gelen bir talebe istinaden herhangi bir tasarım kalıbı kullanmadan bir çözüm üretecek, ardından bu çözümün problemlerini ve hangi yazılım tasarım prensiplerine aykırı olduğunu tartışacak, son olarak da Builder tasarım kalıbı ile aynı talebe uygun bir çözüm üretmeye çalışacağız.
6. Abstract Factory Pattern
Bu makalemizde, nesne oluşturma sürecini soyutlayarak, farklı sınıf ailelerinin birbirleriyle uyumlu şekilde çalışması ve oluşturulması işlemini merkezileştiren Abstract Factory tasarım kalıbını inceleyeceğiz. Bu serinin genelinde olduğu gibi öncelikle Abstract Factory tasarımın kalıbının ne olduğunu, hangi durumlarda hangi sorunlara çözüm sunduğunu konuşacak, sonrasında gelen bir talebe istinaden herhangi bir tasarım kalıbı kullanmadan bir çözüm üretecek, ardından bu çözümün problemlerini ve hangi yazılım tasarım prensiplerine aykırı olduğunu tartışacak, son olarak da Abstract Factory tasarım kalıbı ile aynı talebe uygun bir çözüm üretmeye çalışacağız.
5. Factory Method Pattern
Bu makalemizde, nesne oluşturma sürecini soyutlayarak, nesnelerin nasıl ve hangi sınıfın örnekleri olarak oluşturulacağına karar verme işlemini merkezileştiren Factory Method tasarım kalıbını inceleyeceğiz. Bu serinin genelinde olduğu gibi öncelikle Factory Method tasarımın kalıbının ne olduğunu, hangi durumlarda hangi sorunlara çözüm sunduğunu konuşacak, sonrasında gelen bir talebe istinaden herhangi bir tasarım kalıbı kullanmadan bir çözüm üretecek, ardından bu çözümün problemlerini ve hangi yazılım tasarım prensiplerine aykırı olduğunu tartışacak, son olarak da Factory Method tasarım kalıbı ile aynı talebe uygun bir çözüm üretmeye çalışacağız.
4. Simple Factory Pattern
Bu makalemizde, nesne oluşturma sürecini soyutlayarak, nesnelerin nasıl ve hangi sınıfın örnekleri olarak oluşturulacağına karar verme işlemini merkezileştiren Simple Factory tasarım kalıbını inceleyeceğiz. Bu serinin genelinde olduğu gibi öncelikle Simple Factory tasarımın kalıbının ne olduğunu, hangi durumlarda hangi sorunlara çözüm sunduğunu konuşacak, sonrasında gelen bir talebe istinaden herhangi bir tasarım kalıbı kullanmadan bir çözüm üretecek, ardından bu çözümün problemlerini ve hangi yazılım tasarım prensiplerine aykırı olduğunu tartışacak, son olarak da Simple Factory tasarım kalıbı ile aynı talebe uygun bir çözüm üretmeye çalışacağız.
3. Singleton Pattern
Bu makalemizde, özellikle nesne oluşturma süreçlerinde kullanılan Singleton tasarım kalıbını inceleyeceğiz. Öncelikle Singleton tasarım kalıbının ne olduğunu, hangi durumlarda hangi sorunlara çözüm sunduğunu konuşacak, sonrasında gelen bir talebe istinaden herhangi bir tasarım kalıbı kullanmadan bir çözüm üretecek, ardından bu çözümün problemlerini ve hangi yazılım tasarım prensiplerine aykırı olduğunu tartışacak, son olarak da Singleton tasarım kalıbı ile aynı talebe uygun bir çözüm üretmeye çalışacağız.
2. Yazılım Tasarım Prensipleri
1. Tasarım Kalıplarına Giriş
Bu makaleyle birlikte, uzun soluklu tasarım kalıpları (design patterns) serimize başlıyoruz. Uzman junior ile senior developer arasındaki farkı ortaya çıkaran tasarım kalıplarına neden ihtiyaç duyduğumuz ve bize ne fayda sağlayacağı gibi konuların üzerinden geçtikten sonra “Pattern” ve “Anti-Pattern” kavramlarını inceleyecek ve sonu yazılım mimarlığına çıkan serüvenimize başlayacağız.