pattern-2

2.DAVRANIŞSAL TASARIM DESENLERi

2.1.Durum ( State ) Tasarım Deseni

Nesnenin durumu değiştiğinde, davranışı da değişiyorsa, yani nesneler farklı durumlarda, farklı davranışlar gösteriyorsa, durum tasarım deseni kullanılabilir. Bu tasarım deseninin kullanılması, nesnelerin durumlarına bağlı değişen davranışlarının karmaşık “if/else” veya “switch” ifadeleriyle kontrol edilmesini önler.

Örnek verelim;

state-pattern-design4
State Pattern Design

2.2.Gözlemci ( Observer ) Tasarım Deseni

Bir nesnenin durumlarında değişiklik olduğunda, bu değişikliklerden haberdar olmak isteyen diğer nesnelere haber verilmesi gerektiği durumlarda bu tasarım deseni kullanılır. Bu haber verilme işlemi sırasında, haber verilecek nesnelerin birbirlerine bağımlı olması istenmez. Yani kısaca dinleyici konumunda bulunan bir çok nesne, bir nesnenin durumunu sürekli gözlemler. Bir değişiklik sırasında gözlemcilere haber verilir.

Örnek verelim;

observer-pattern-design
Observer Pattern Design

 

2.3.Strateji ( Strategy ) Tasarım Deseni

Bir işlem için farklı yöntemlerin uygulanabilir olduğu durumlarda, bu yöntemi kullanacak olan nesne, hangi yöntemin uygulanacağını seçer. Çünkü bu içerik nesnesi, yöntemleri belirleyen üst sınıfı içerir. Farklı yöntem veya strateji alt sınıfları da, bu üst sınıftan türerler. Bu tasarım deseniyle, yöntemin nasıl uygulanması gerektiği ile ilgili detaylar, bu yöntemi kullanacak nesneden ayrılmış olur. Ayrıca bu tasarım deseninin kullanılmasıyla, kod uzun “if/else” veya “switch” ifadelerinden ayıklanır.

Örnek verelim;

strateji-pattern-design
Strategy Pattern Design


2.4.Tekrarlayıcı (Iterator) Tasarım Deseni

Tekrarlayıcı tasarım kalıbı; birleşik bir nesnenin bileşenlerine, nesnenin esas ifadesinin gösterilimini açığa çıkarmadan sırayla erişebilmeyi sağlar. Kullanıldığı Durumlar
Tekrarlayıcı tasarım kalıbı, bir listenin yapısının ve çalışma tarzının uygulamanın diğer kısımları ile olan bağlantılarını en aza indirmek için; listede yer alan nesnelerin, sırasıyla uygulamadan soyutlanması amacıyla kullanılır.
Tekrarlayıcı kalıbın içinde yer alan yapılar aşağıdaki gibi sıralanır:

Tekrarlayıcı (Iterator): Öğelere ulaşmak ve öğeleri çaprazlamak için bir arabirim tanımlar.
Somut Tekrarlayıcı (Concrete Iterator): Tekrarlayıcı arayüzünü sağlar.
Birleşik (Aggregate): Tekrarlayıcı nesnelerin yaratılması için bir arabirim oluşturur.
Somut Birleşik (Concrete Aggregate): Uygun somut tekrarlayıcı aşamasına dönmek için tekrarlayıcı arabiriminin oluşturulmasını sağlar. Bu yapısal kod; koleksiyonun esas yapısını detaylandırmaksızın, nesne koleksiyonlarını tekrarlanmasını sağlayan tekrarlayıcı tasarım kalıbı örnekle gösterilebilir.
iterator-pattern-design
Iterator Pattern Design

1.Adım:

2. Adım:

3.Adım:

4.Adım:

 

2.5.Chain Of Responsibility
Bir isteğin belli sınıflar içinde gezdirilerek ilgili sınıfın işlem yapmasını yönetir.

2.6.Commandİşlemlerin nesne haline getirilip başka bir nesne(invoker) üzerinden tetiklendiği bir tasarım desenidir.

2.7.Interpreter
İşlemlerin nesne haline getirilip başka bir nesne(invoker) üzerinden tetiklendiği bir tasarım desenidir.

2.8.Mediator
Çalışmaları birbirleri ile aynı arayüzden türeyen nesnelerin durumlarına bağlı olan nesnelerin davranışlarını düzenler.

2.9.Memento
Bir nesnenin tamamının veya bazı özelliklerinin tutularak sonradan tekrar elde edilmesini sağlar.

2.10.Template method
Bir algoritmanın adımlarının abstract sınıfta tanımlanarak farklı adımların concrete sınıflarında overwrite edilip çalıştırılmasını düzenler.

2.11.Visitor
Uygulamada ki sınıflara yeni metotlar eklenmesini düzenler.

Yazının devamı için bkz.

2 YORUMLAR

CEVAP VER

Yorum yazın
Lütfen adınızı buraya giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.