Mediator Design Pattern

Merhaba değerli Java dostları, Bugün mediator design pattern hakkında bahsetmek istiyorum. Mediator design pattern ile amacımız birbirileri ile haberleşen bileşenler arasında esnek yapı sağlamaktır. En temel adım bileşenlerin direkt olarak birbirileri ile haberleşmelerini engellemektir. Mediator design pattern ile ara bir nesne kullanılır ve tüm bileşenler bu ortak nesne üzerinden haberleştir. Böylece bileşenler arasında sıkı bağ ortadan kaldırılmış olunur. Mediator design pattern için en güzel örneklerden birisini uçuş kontrol olarak verebiliriz. Uçuş kontrol sistemlerinde uçaklar birbirileri ile haberleşmez. Bunun yerine kule tüm uçuşlar arasında koordinasyonu sağlar. İşte mediator design pattern için gerçek bir gündelik problem. Örneğimize bakalım. package anajavatica.pattern.behavioral.mediator;public class Flight { Paylas    

Memento Design Pattern

Merhaba Java dostları, Bugün bir davranışsal tasarım şablonu olan memento design pattern hakkında yazmak istedim. Hemen hemen her şablonda olduğu gibi burada da önce kelime anlamına bakıyoruz. Memento kelime anlamı hatıra vb anlamlara gelmektedir. Dolayısıyla şöyle bir mantık yürütebiliriz. Bir sınıfın belli değerlerini başka bir yerde saklamak ve gerektiğinde tekrar yüklemek için kullanılır. Memento design pattern için en belirgin örnek olarak oyunları verebiliriz. Oyunda belirli bir noktaya kadar geldiğimizi ve bu noktada oyunu kaydettiğimizi düşünelim. İlerleyen aşamaları geçemedik ve oyuna yeniden başlamak yerine daha önceden kaydettiğimiz noktaya geri dönmek isteriz. İşte tam da memento design pattern için bir problem. Memento design pattern için birkaç terime değinmek istiyorum. Paylas    

Strategy Design Pattern

Merhaba değerli Java dostları, Bugünkü yazımda bir başka davranışsal tasarım şablonu olan strategy design pattern değinmek istiyorum. Bazen bir işlemi, bir amacı gerçeklemek için birden fazla yol veya alternatif olabilir. Bu alternatiflerden herhangi birisini dinamik olarak çalışma anında kullanmak isteyebiliriz. İşte bu noktada strategy design pattern devreye giriyor. Yapacağımız seçime göre strategy design pattern bizim için gerekli metotları tetikleyecektir. Aslında ilk bakışta strategy design pattern ile factory design pattern benzer görünebilir; ama aralarında grup farkı vardır. Yani, factory design pattern ile nesne oluşturmada karar süreci kullanılırken, strategy design pattern ile işlev seçiminde karar süreci kullanılır. Bundan dolayıdır ki strategy design pattern davranışsal grubuna girer. Lafı çok uzatmadan örneğimize geçelim. Aşağıdaki örnek oldukça basit. Birden, kullanıcının girdiği değere kadar olan sayıları topluyor. En basit yöntem ile bunu döngüsel bir işlem olarak kodlayabiliriz. Bir diğer ve daha şık yöntem ise matematikten bildiğimiz bir formül tek bir adımda bu işi halletmek. Seçim sizin… Paylas    

Observer Design Pattern

Merhabalar değerleri Java dostları, Bu yazımda observer design pattern değinmek istiyorum. Observer kelime anlamı olarak gözlemci olarak geçmektedir. Dolayısıyla basit bir mantık yürüttüğümüzde observer design pattern için; nesnelerin durumlarını gözlemlemek ve belli bir olay karşısında belirli işlemleri gerçekleştirmek olarak açıklama yapabiliriz. Genel mantığını toparlayacak olursam, observer design pattern; işlemlerin ve nesnelerin üzerinde meydana gelecek olaylardan haberdar olmak için kullanılır. Meydana gelen değişiklikte bağlı nesnelerin metotlarının tetiklenmesi temelde yatar. Observer design pattern en çok kullanıldığı alanlar arasında GUI componentler vardır. Örnek verecek olursak, bir butonun tıklandığında yapılacak işlemler için kullanılan yapı, bir observer design pattern örneğidir. Observer design pattern için bir diğer kullanım alanı ise MVC’ dir. Paylas    

State Design Pattern

Hepimiz mutlaka durum odaklı problemler ile karşı karşıya kalmışızdır. Yani bir nesne belirli durumlarda belirli işlemleri gerçekleştirip yine belirli bir yeni duruma geçer ve bu döngü uygulamanın süreci boyunca devam eder. Aslında ilk akla gelen bu durumların if – else veya switch – case yapıları ile sağlanmasıdır; fakat bu kontroller ile karmaşıklık artar ve bakım zorlaşır. Bunun yerine her durumun bir nesne haline getirilmesi ve uygun işlemleri tetiklemesi daha esnek ve sağlam bir mimari sunacaktır. Örneğimize bakalım. package anajavatica.pattern.behavioral.state;public interface IState { Paylas    

Visitor Design Pattern

Değerli Java dostları, Bugünkü yazımda visitor design pattern değinmek istiyorum. Aslında basit bir amacı var, o da şu; var olan sınıfların hiyerarşik yapılarını ve mevcut yapılarını değiştirmeden yeni metotlar eklemek. Yeni metotlarımız visitor sınıfı üzerinde tanımlanır ve mevcut sınıflar kendilerini bu visitor sınıfa parametre olarak aktarıp gerekli işlemleri yaparlar. Hemen örneğimize bakalım. package anajavatica.pattern.behavioral.visitor;public interface Place { Paylas