Decorator Design Pattern
Tasarım Süreç & Modelleri / 29 Mayıs 2015

Merhabalar Java dostları, Yeni bir tasarım şablonu ile beraberiz. Decorator design pattern, mevcut bir sınıf yapısını değiştirmeden yeni özelliklere sahip nesneler oluşturmayı amaçlar. Bu şablon ile oluşan yeni nesnenin, decorator nesne ile olan interfaceleri aynıdır; fakat arka planda ek işlemler yapabilmektedir. Yani mevcut nesne, yeni nesne içerisinde gömülü halde bulunur. Peki bu yöntemi kalıtım ile yapamaz mıyız sorusu akla geliyor. Elbette yapabiliriz; fakat daha sonra bakım ve güncelleme maliyetleri yüksek olacaktır. Çünkü kalıtım işleminde daha sıkı bir bağ vardır. İsterseniz örneğimize geçelim. package designpattern.decorator;public interface IRoom{public void prepareRoom();} Paylas    

Facade Design Pattern
Tasarım Süreç & Modelleri / 28 Mayıs 2015

Merhabalar Java dostları, Yeni tasarım şablonumuz facade design pattern, kelime anlamı gibi bir cephe, bir duvar gibi çalışıyor mantık olarak. Yazılım componentini kullanan istemci için bir arayüz gibi çalışır. Katmanlar arası bağımlılıkları azaltmak için kullanabilir. Örnek verecek olursam, üçüncü parti kütüphaneleri kullanan bir paket, soyutlamayı sağlamak için son kullanıcıya bir arayüz sunar ve biz sadece bu arayüz ile muhattap oluruz. Şimdi sizlere günlük bir hayattan örnek vermek istiyorum. Manuel ve otomatik vites çeşitlerimiz olsun. Biz sürücü olarak sadece interface ile muhattap oluruz. Kapalı kısmın içerisinde ne yapıldığı ile ilgilenmeyiz. Her üretici kendi teknolojisine göre farklı bir yapı çalıştırır. İşte kodumuz. package designpattern.facade;public interface IGear { Paylas    

Flyweight Design Pattern
Tasarım Süreç & Modelleri / 27 Mayıs 2015

Merhaba Java dostları, Bir tasarım şablonu ile daha beraberiz. Bu yazımda flyweight design pattern anlatmaya çalışacağım. Aslında adından anlaşıldığı gibi bazı şeyleri hafifletmeye çalışıyoruz. Peki ne diye soracak olursanız, vereceğim cevap oluşturulan obje sayısı olacaktır. Böylece performans artışı elde etmeye çalışıyoruz. Bu konu ile ilgili olarak bir nevi pool mantığını düşünebiliriz. Arka tarafta tuttuğumuz bazı objeleri gerektiğinde çağırıyoruz. Böylece boşuna yeniden yeniden obje oluşturmuyoruz. Bu şablonu kullanırken bir kriterimiz de şu olabilir; obje üzerinde ayırt edici ve özelleştirilebilir özellikler varsa, bu ayırt edici özellikler üzerinden yine bu şablon kullanılabilir. Java içerisinde de bunun örnekleri var. Integer, Boolean vb sınıfları üzerindeki valueOf metotları bu şablonu kullanmaktadır. İsterseniz örneğimize geçelim. Bu örneğimizde bir oyun yazdığımızı düşünüyoruz. Düz bir yol boyunca koşan kahramanımız bazı engeller ile karşılaşıyor. Şimdi bu engelleri koyalım. package designpattern.flyweight; public class Obstacle { } Paylas    

Android NoClassDefFoundError
Android , Java / 22 Mayıs 2015

Merhaba değerleri Java dostları, Gece saat 1 itibari ile bir hatanın çözümüne ulaşmış olmaktan dolayı mutluluk duyarak bunu paylaşmak istedim. Aldığım hata Android NoClassDefFoundError . Bir Android projesi yazarken başka bir projeyi kütüphane olarak kullanıyordum; fakat ne hikmetse her defasında başlıktaki hatayı alıyordum. En sonunda kütüphane olarak kullandığım projeyi de mevcut projemin içine taşıyınca hata düzeldi. Sanırım path ayarları ile ilgili bir sorun yaşadım. Bu şekilde bir çözüm sağlayabildim. Paylas    

Android Activity Lifecycle
Android , Java / 21 Mayıs 2015

Merhaba değerli Java dostları, Android activity lifecycle ile ilgili makaleler okurken, activity için yaşam döngüsünü grafiksel olarak gayet güzel özetleyen bir diyagrama denk geldim ve paylaşmak istedim. Kaynak isteye buradan ulaşabilirsiniz. Paylas    

Android Real Device
Android , Java / 18 Mayıs 2015

Android real device ile çalışırken aslında emulator gibi bir aracın elimizde olması büyük bir şans; fakat bazı durumlarda bu emulator olayı can sıkıcı olabiliyor. Yazılan kodun yüklenmesi ve çalışması, uygun emulator ayarlarının bulunması gibi bazı sorunlar oldukça vakit alabiliyor. Buna karşılık kodun gerçek bir aygıt üzerinde denenmesi ise oldukça hızlı ve maliyeti düşük bir işlem. Yine bazı durumlarda SDK veya IDE direkt olarak aygıtı görmeyebiliyor. Bunun için birkaç adımı kontrol etmemizde fayda var. Bunlar; 1 – Geliştirme ortamınızda bir güvenlik programı varsa ayarlarını kontrol etmek. Paylas