Strategy Pattern
En sevdiğim ve en çok kullandığım design pattern olan Strategy Pattern hakkında fırsat bulup bişeyler yazabildiğim için mutluyum. İlk satırı yazdığıma göre gerisi gelecektir. Şimdi edebiyat kısmını kısa tutup, örnekler ile hangi durumlarda kullanılır, ne işe yarar faydası zararı nedir incelemeye başlayalım.Örnekleri gördükten sonra aslında strategy tasarım kalıbının daha öncedende bahsettiğimiz, ve daha sonradan da [...]
Fluent Interface Örneği
Örnek Kodlar
Fluent Interface Kullanılarak
Fluent Interface Kullanmadan
Fluent Interface kavramı ile ilk olarak 2007 yılında Martin Fowler’ın bu yazısını okuyunca tanışmıştım. Hatta örnekte gösterdiği
TimeInterval meetingTime = fiveOClock.until(sixOClock);
kodu beni oldukça etkilemişti. Tabi kısa bir an bir kendi yazdığım koda birde şekilde yazılan koda bakakaldım diyebilirim. Okunabilir kod deyip dururuz ya; bu kodu okuyunca “İşte okunabilir kod budur” dediğim [...]
Object Creation Patterns, Bölüm 1 : Creation Method
Uzun süredir yazamamanın verdiği rahatsızlığı üzerimden atmak üzere yeni yazı serilerimize başladığımızı bildiririm.(Vatana millete hayırlı olsun ) Bu satırları yazarken bile kendimi biraz daha rahatlamış hissettim. Yaklaşık belki 1 sene önce arkadaşım Sadullah’ın Factory Pattern ile alakalı yazı yazmamı istediğini hatırlar gibiyim. Daha sonra başka arkadaşlarda yorumlarında bu yönde istek belirttiler. Bu yüzden bende hem [...]
Command-Query Separation Principle
Nesneye yönelik programlamanın önemli prensiplerinden olan Command Query Seperation Prensibini küçük bir örnekle inceleyeceğiz.Bu konuda yine örnekleri gerçek dünyadan olsun diye eski kodlarımı baya bir karıştırdım. Eski kodlarda her türlü bad smell bulabiliyorum ne mutlu bana Öncelikle bu prensibi ihlal eden aşağıdaki kodumuza bakalım.Bunu C# da Property olarak yazmışım. Java içinde aynı kodu getter olarak [...]
Yazılım Mühendisiği Rehberi-Design Patterns
Nasıl daha iyi bir yazılım mühendisi olabiliriz? Geçen yazıdan hatırladığımız gibi araştırmalarımız devam ediyordu. Bu yazıda meşhur Design Patterns konusuna değineceğiz.
Design Patterns aslında Object Oriented Design, Object Oriented Programming konularını uygulamalı olarak anlatıyor aslında. O yüzden bu konuya açıkçası OOP, OOD nin uygumalı olarak problemler üzerinde öğrenimi olarak bakıyorum. Günümüzde modern Yazılım mühendisliğinin temelindede bu [...]
Data Access Object Pattern (DAO)
Bu yazıda biraz daha yüksek seviyeli tasarım kalıplarından olan Data Access Object Pattern kısa adıyla DAO pattern’ı inceleyeceğiz. Aslında DAO Pattern klasik anlamıyla daha önce bahsettiğimiz Strategy Pattern ‘ın örneğidir. Fakat uygulama alanı biraz daha veri katmanı ile özelleşmiştir.Makale için DAO Pattern kullanmadan ve kullanarak geliştirdiğim örnek projeleri yazının en sonunda bulabilirsiniz.
Örneklerde kodu fazla uzatmamak [...]
Model View Presenter (MVP) Pattern
Yine mimari olarak oldukça faydalalı olan tasarım kalıplarından birini örnekle incelemeye devam edeceğiz. Bu yazıda Model View Controller (MVC) Pattern’ın bir çeşidi olan Model View Presenter (MVP) Pattern nedir ne değildir bakıp örneklerle inceleyeceğiz.
Örnekleri buradan indirebilirsiniz
AdresListesi Klasik(UI ile Business Logic iç içe )
AdresListesi MVP(UI ile Business Logic ayrılmış)
Model View Controller,Model View Presenter,Presentation Model… gibi GUI [...]