Üst Düzey Programlama Tasarım Şablonları Üst Düzey Programlama-ders03/ 1
Chain-Of-Responsibility ŞABLONU Bu şablon; bir dizi sınıfın, gönderilmiş olan isteğine yanıt vermesini sağlar. Bu nesneler farklı düzeylerde bulunur. En alt düzeye gelen isteğe burada cevap verilmez ise istek üst düzeydeki nesneye gönderilir. Örneğin; bir nesnenin tostring() metodunu çağırdınız. Bu nesne içinde tostring() metodu varsa o çağrılır, yoksa super (atası olan bir üst sınıf) sınıfına bakılır, onda da metot bulunmaz ise bu şekilde devam edilir en sonunda da Object sınıfının tostring() metodu çalıştırılır. Üst Düzey Programlama-ders03/ 2
Chain-Of-Responsibility ŞABLONU Üst Düzey Programlama-ders03/ 3
Chain-Of-Responsibility ŞABLONU Üst Düzey Programlama-ders03/ 4
Chain-Of-Responsibility ŞABLONU Üst Düzey Programlama-ders03/ 5
Chain-Of-Responsibility ŞABLONU Üst Düzey Programlama-ders03/ 6
Chain-Of-Responsibility ŞABLONU Üst Düzey Programlama-ders03/ 7
COMMAND ŞABLONU Bir nesneye, ne yapacağını bilmeden istekde bulunmak için kullanılır. İçerisinde belirli bir görevi yapan bir metot bulunur ve yapılacak işlem bu metoda yazılır. Üst Düzey Programlama-ders03/ 8
COMMAND ŞABLONU Üst Düzey Programlama-ders03/ 9
COMMAND ŞABLONU Üst Düzey Programlama-ders03/ 10
INTERPRETER ŞABLONU Verilen bir dilin sunumu ve yorumlanması için kullanılır. Özel amaçlı bir dil tasarlamak ve bu dili yorumlamada kullanılır. Bu şablon dildeki gramer kurallarının her biri için bir sınıf kullanır. <interface> AbstractRule interpret(context) NonTerminal interpret(context) Terminal interpret(context) Üst Düzey Programlama-ders03/ 11
INTERPRETER ŞABLONU Reverse Polish notasyonunu yorumlayan bir örnek yazalım. 3*(4+7) işlemi RPN = 3 4 7 + * şeklinde yazılır. 5 +((1+2)*4)+3 RPN = 5 1 2 + 4 * + 3 + şeklinde yazılır. Üst Düzey Programlama-ders03/ 12
INTERPRETER ŞABLONU Üst Düzey Programlama-ders03/ 13
INTERPRETER ŞABLONU Üst Düzey Programlama-ders03/ 14
INTERPRETER ŞABLONU Üst Düzey Programlama-ders03/ 15
INTERPRETER ŞABLONU Üst Düzey Programlama-ders03/ 16
INTERPRETER ŞABLONU Üst Düzey Programlama-ders03/ 17
ITERATOR ŞABLONU Bir kolleksiyon- bütün şekilde bulunan nesnelerin arka plandaki arayüzlerini sergilemeden sırasal olarak erişmek için kullanılır. Iterator Ilk nesneden itibaren sırayla nesneleri gezer. NESNELER KOLLEKSİYONU Üst Düzey Programlama-ders03/ 18
ITERATOR ŞABLONU Üst Düzey Programlama-ders03/ 19
MEDIATOR ŞABLONU Uygulamadaki çeşitli sınıfların birbirleri ile iletişim kurmasını sağlayan bir nesnedir. Nesneler birbirleriyle bu nesneyi kullanarak haberleşirler. Üst Düzey Programlama-ders03/ 20
MEDIATOR ŞABLONU Üst Düzey Programlama-ders03/ 21
MEDIATOR ŞABLONU Üst Düzey Programlama-ders03/ 22
MEDIATOR ŞABLONU Üst Düzey Programlama-ders03/ 23
MEMENTO ŞABLONU Nesnenin özelliklerini nesnenin gizliliğini koruyarak saklar. Nesnenin durumlarını saklar. Böylece nesne eski bir durumuna geri dönebilir. ( UNDO işlemi) Üst Düzey Programlama-ders03/ 24
MEMENTO ŞABLONU Üst Düzey Programlama-ders03/ 25
MEMENTO ŞABLONU Üst Düzey Programlama-ders03/ 26
MEMENTO ŞABLONU Üst Düzey Programlama-ders03/ 27
OBSERVER ŞABLONU Genelde (yayınla / üye ol) şablonu olarak da bilinir. Bu şablon programdaki bir nesnenin durumunu takip etmek için kullanılır. Observer notify() Subject registerobserver(observer) unregisterobserver(observer) notifyobservers() ConcreteObserverA notify() ConcreteObserverA notify() NotifyObservers() for observer in ObserverCollection call observer.notify() Üst Düzey Programlama-ders03/ 28
OBSERVER ŞABLONU Üst Düzey Programlama-ders03/ 29
OBSERVER ŞABLONU Üst Düzey Programlama-ders03/ 30
OBSERVER ŞABLONU Üst Düzey Programlama-ders03/ 31
OBSERVER ŞABLONU Üst Düzey Programlama-ders03/ 32
Üst Düzey Programlama Tasarım Şablonları Üst Düzey Programlama-ders03/ 33