Üst Düzey Programlama Tasarım Şablonları Üst Düzey Programlama-ders02/ 1
FAÇADE ŞABLONU Facade bir nesnedir ve çok büyük kodları, karmaşık sınıfları basitleştirerek birleştirmek ve ortak bir arayüz sağlamak için kullanılır. FACADE SİSTEM SİSTEM Üst Düzey Programlama-ders02/ 2
FACADE ŞABLONU Örneğin; veritabanı uygulaması geliştirdiğimizde Java dili, veritabanından bağımsız olarak bize ortak arayüz sınıfları olan Database, ResultSet,... Gibi sınıfları kullanmamızı sağlar. Arka planda veritabanına özel olarak yapılan işlemleri bizler göremeyiz. Üst Düzey Programlama-ders02/ 3
FACADE ŞABLONU Üst Düzey Programlama-ders02/ 4
FACADE ŞABLONU Üst Düzey Programlama-ders02/ 5
FLYWEIGHT ŞABLONU Basit nesneler oluşturmak istiyorsunuz ve bu nesnelerin bazı veri değerleri farklıdır. Nesnelerdem çok fazla oluşturduğunuzda bellek fazla kullanılacaksa, nesnelerden 1 tane oluşturup, farklı verileri bu nesneye metot parametresi olarak göndermek daha iyi olacaktır. Bu kullanım flyweight şablonudur. Örneğin; bir kelime işlemci uygulamasındaki her harf için bir nesne oluşturmaktansa harfin bir kopyası oluşturulur ve kullanılacağı yerlerde bu kopyanın referansı kullanılır. Üst Düzey Programlama-ders02/ 6
FLYWEIGHT ŞABLONU Üst Düzey Programlama-ders02/ 7
FLYWEIGHT ŞABLONU Üst Düzey Programlama-ders02/ 8
FLYWEIGHT ŞABLONU Üst Düzey Programlama-ders02/ 9
PROXY ŞABLONU Proxy nesnesi karmaşık bir nesneyi basit bir nesne olarak sunmak amacıyla kullanılır. Eğer bir nesneyi oluşturmak çok zaman yada kaynak(bellek,işlemci,...) gerektiriyorsa, proxy nesnesi bu oluşturmayı siz gerçek nesneye ihtiyaç duyuncaya kadar erteler. Üst Düzey Programlama-ders02/ 10
PROXY ŞABLONU Karmaşık bir nesneden birden fazla ihtiyaç varsa ve bunların hepsini aynı anda oluşturmak çok kaynak(bellek,işlemci,...) gerektiriyorsa bu nesnelerin hepsi oluşturulmaz. Karmaşık nesneden bir tane oluşturulur, karmaşık nesneye referans içeren proxy nesneleri oluşturulur. Bu proxy nesnelerine yapılan çağrılar asıl karmaşık nesneye yönlendirilir; bu şekilde bir karmaşık nesne ve bu nesne gibi davranan proxy nesneleri olur. Tüm proxy nesneleri kullanılmaz olduğunda karmaşık nesne silinir. Üst Düzey Programlama-ders02/ 11
PROXY ŞABLON TİPLERİ Remote Proxy : Aynı yada farklı bir makinede farklı adres uzayındaki nesneye referans içeren proxy. Virtual Proxy: Çok fazla bellek gerektiren nesne yerine kullanılan proxy. Asıl nesne gerçekten ihtiyaç duyuluncaya kadar oluşturulmaz. Copy-On-Write Proxy: Hedef nesnenin gerçekten ihtiyaç duyuncaya kadar kopyasını oluşturmayan, gerektiği zaman oluşturan proxy. Protextion(Access) Proxy: Farklı istemcilerin asıl nesneye farklı erişmelerini sağlayan proxy. Üst Düzey Programlama-ders02/ 12
PROXY ŞABLON TİPLERİ Cache Proxy: yoğun olan nesnedeki işlemlerin sonuçlarını geçici saklama imkanı sağlayarak, bu sonuçların farklı istemcilerce kullanılmasını sağlamak. Firewall Proxy: Hedef nesneyi kötü istemcilerden korumak. Synchronization Proxy: Hedef nesneye eş zamanlı erişim sağlayan proxy. Üst Düzey Programlama-ders02/ 13
PROXY ŞABLON Üst Düzey Programlama-ders02/ 14
PROXY ŞABLON Üst Düzey Programlama-ders02/ 15
PROXY ŞABLON Üst Düzey Programlama-ders02/ 16
FACTORY ŞABLONU Bir factory şablonu, kendisine verilen parametre ve değerlere göre mümkün olan birkaç sınıftan istediğimizi oluşturur ve bize döndürür. Genellikle geriye döndürülen tüm sınıflar ortak bir ebeveyn sınıfından yada arayüzünden oluşturulmuştur. X Factory getclass X XY XZ abc Üst Düzey Programlama-ders02/ 17
FACTORY ŞABLONU Üst Düzey Programlama-ders02/ 18
FACTORY ŞABLONU Üst Düzey Programlama-ders02/ 19
FACTORY ŞABLONU Üst Düzey Programlama-ders02/ 20
ABSTRACT FACTORY ŞABLONU Factory şablonu oluşturan bir factory şablonudur. Interface AbstractFactory AurunuOlustur() BurunuOlustur() Interface Aurunu istemci Factory2 (2 nolu ürünlerden oluşturur) AurunuOlustur() BurunuOlustur() Factory1 (1 nolu ürünlerden oluşturur) AurunuOlustur() BurunuOlustur() A1 A2 Interface Burunu B1 B2 Üst Düzey Programlama-ders02/ 21
ABSTRACT FACTORY ŞABLONU Üst Düzey Programlama-ders02/ 22
ABSTRACT FACTORY ŞABLONU Üst Düzey Programlama-ders02/ 23
ABSTRACT FACTORY ŞABLONU Üst Düzey Programlama-ders02/ 24
ABSTRACT FACTORY ŞABLONU Üst Düzey Programlama-ders02/ 25
Singleton ŞABLONU Bu şablon bir sınıftan sadece tek bir nesnenin oluşturulabilmesini sağlamak için kullanılır. Singleton -instance:singleton +getinstance() -Singleton() Üst Düzey Programlama-ders02/ 26
Singleton ŞABLONU Üst Düzey Programlama-ders02/ 27
Singleton ŞABLONU Üst Düzey Programlama-ders02/ 28
Singleton ŞABLONU Üst Düzey Programlama-ders02/ 29
Üst Düzey Programlama Tasarım Şablonları Üst Düzey Programlama-ders02/ 30