YZM 2108 Yazılım Mimarisi ve Tasarımı

Benzer belgeler
YZM 2108 Yazılım Mimarisi ve Tasarımı

YZM 2108 Yazılım Mimarisi ve Tasarımı

YZM 2108 Yazılım Mimarisi ve Tasarımı

YZM 2118 Yazılım Mimarisi ve Tasarımı

TASARIM KALIPLARI TASARIM DESENLERİ TASARIM ÖRÜNTÜLERİ TASARIM ŞABLONLARI

YZM 2108 Yazılım Mimarisi ve Tasarımı

YZM 2108 Yazılım Mimarisi ve Tasarımı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

YZM 2116 Veri Yapıları

TASARIM KALIPLARI-DEVAM. Singleton Adapter

YZM 3215 İleri Web Programlama

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

YZM 3215 İleri Web Programlama

ALGORİTMA VE PROGRAMLAMA I

YZM 2116 Veri Yapıları

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

YZM 2108 Yazılım Mimarisi ve Tasarımı

ALGORİTMA VE PROGRAMLAMA II

YZM 2116 Veri Yapıları

YZM 3215 İleri Web Programlama

YZM 2116 Veri Yapıları

YZM 3215 İleri Web Programlama

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

ALGORİTMA VE PROGRAMLAMA II

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

Yrd. Doç. Dr. Caner ÖZCAN

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

YZM 2116 Veri Yapıları

YZM 2105 Nesneye Yönelik Programlama

YZM 2116 Veri Yapıları

ALGORİTMA VE PROGRAMLAMA I

MOBIL UYGULAMA GELIŞTIRME

Java Programlama (COMPE 438) Ders Detayları

YZM 2105 Nesneye Yönelik Programlama

YZM 2116 Veri Yapıları

Decorator Tasarım Şablonu

YZM 3102 İşletim Sistemleri Uygulama

ALGORİTMA VE PROGRAMLAMA II

Yazılım Örüntüleri (SE 461) Ders Detayları

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

Java da İstemci Tarafı Uygulamalar

YZM 2116 Veri Yapıları

ARDIŞIL DİYAGRAM YAPI DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

Kullanılabilirlik Staj Programı

Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları. Ömer Faruk MIZIKACI

YZM 3215 İleri Web Programlama

ALGORİTMA VE PROGRAMLAMA I

Kullanım Durumu Diyagramları (Use-case Diyagramları)

YZM 2105 Nesneye Yönelik Programlama

NESNEYE YÖNELİK TASARIM SÜRECİ

YZM 2108 Yazılım Mimarisi ve Tasarımı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

Üst Düzey Programlama

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Arasınav Örnek Soruları Bahar 2018

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

YZM 2105 Nesneye Yönelik Programlama

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

ALGORİTMA VE PROGRAMLAMA I

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

Nesneye Yönelik Tasarım ve Programlama (COMPE 501) Ders Detayları

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

Çoğul Ortam Akıtma Platformlarında, Uçbirimlerdeki Fonksiyonel İşlemlerin Bulut Bilişim (Cloud Computing) Hizmetine Çekilmesi Projesi

Arasınav Soruları Güz, Süre: 90 Dakika

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

SPARC v8 İŞLEMCİ SİMÜLASYONU

(FAKÜLTE/YÜKSEKOKUL/MESLEK YÜKSEKOKULU) İŞ YERİ UYGULAMA EĞİTİM KOORDİNATÖRÜ

Yaz.Müh.Ders Notları #4 1

ALGORİTMA VE PROGRAMLAMA I

Yazılım Tasarımı(Software Design)

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

Farklı Mobil Platformlar Üzerinde Servis Tabanlı Mimari(SOA) Yaklaşımı: Elektronik Uçuş Çantası Vaka Çalışması

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Kalite Daima Kazanır. SP Serisi PVC Plastik Sıvı Seviye Sensörleri.

BİL-142 Bilgisayar Programlama II

ALGORİTMA VE PROGRAMLAMA I DERS#1

Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları

YZM 3102 İşletim Sistemleri Uygulama

ALGORİTMA VE PROGRAMLAMA I

Üst Düzey Programlama

Kurumsal Kullanılabilirlik Eğitimi

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık Bağıntı Modeli

Final Sınavı Soruları Güz, Süre: 90 Dakika

Yrd. Doç. Dr. Caner ÖZCAN

Transkript:

YZM 2108 Yazılım Mimarisi ve Tasarımı Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1

BÖLÜM - 4 Tasarım Kalıpları - II Bu bölümde; Facade Tasarım Kalıbı ile ilgili konular anlatılacaktır. 2

Facade Cephe / ÖnYüz 3

Facade Çoğu modern yazılım sistemi oldukça karmaşıktır. Tasarım kalıpları uygulamaların yapımında yardımcı olmakta ve karmaşıklıkla başa çıkmak için işleri kolaylaştırmaktadır. Onlar, fonksiyoneliteyi bir dizi ufak sınıflar arasında bölerek bunu başarmaktadırlar. Eklenen sınıflar ayrıca sistemin ufak parçalara ayrılmasının bir sonucu olarak da üretilebilirler. 4

Facade (devam...) Bir sistemi birkaç alt sisteme bölmek size karmaşık sistemlerle başa çıkmanızda yardımcı olur ve çalışmayı parçalamanıza olanak sağlar. Bir sistemi belirli bir sayıdaki özel sınıflara bölmek, iyi bir nesneye yönelimli tasarım pratiğidir. Fakat, bir sistemin içerisinde çok fazla sayıda sınıfın olması sakıncalı olabilir. 5

Facade (devam...) Çok fazla alt sisteme sahip olan bu sistemi kullanan istemciler daha fazla nesne ile başa çıkmak zorundadır. Kullanıcılara yüzlerce yapılandırma seçeneği sunulduğunda, kullanıcıların kafası karışır. 6

Facade (devam...) Bu duruma bir örnek olarak bir araba üreticisi düşünelim ve her türlü detayı kullanıcının opsiyonuna bırakmış olsun. Örneğin aracın yakıtı yanarken kullanacağı hava/gaz oranını ayarlanmasını ya da aracın içerisindeki ateşleme sisteminin nasıl işletilmesi gerektiğini sürücünün tercihine bırakıldığını hayal edelim. 7

Facade (devam...) Bu durumda otomobilin her seferinde ayarlanması gerekir ve bu pekte pratik değildir. Sürücü olarak istenilen tek şey aracın anahtarını takmak ve aracı çalıştırmaktır. Sistemin geriye kalanı sürücünün yerine halledilmelidir. 8

Facade (devam...) Bir istemciye sadece birkaç seçenek fayda sağlamaktadır, yüzlercesi veya binlercesi değil. Facade, bu seçenekleri sağlayabilir ve hangi alt sistemin çağırılacağına karar verebilir. Normalde Facade işin çoğunu alt sistemlere atar, fakat birkaç işi kendisi de yapabilmektedir. 9

Facade (devam...) Facade nin asıl amacı alt sistemlerin saklanması değildir. Amacı, bir dizi alt sistem için bir ara yüz sağlamaktır; fakat daha ayrıntılı seçeneklere ihtiyaç duyan istemciler alt sistemlerle etkileşime geçebilmelidir. 10

Facade (devam...) 11

Örnek8: Seyahat Acentesi OtelRezervasyon ve UcusRezervasyon sınıflarını Facade tasarım kalıbını kullanarak sınıfları ayrı ayrı kullanmaya gerek kalmayacak şekilde bir Seyahat sınıfı yaratalım. 12

Örnek8: Seyahat Acentesi (devam..) 13

Örnek8: Seyahat Acentesi (devam..) Otel.java Ucus.java 14

Örnek8: Seyahat Acentesi (devam..) OtelRezervasyon.java 15

Örnek8: Seyahat Acentesi (devam..) UcusRezervasyon.java 16

Örnek8: Seyahat Acentesi (devam..) Seyahat.java 17

Örnek8: Seyahat Acentesi (devam..) Program.java 18

Örnek9: SekilCizici void Ciz() fonksiyonuna sahip ISekil arayüzünü implemente eden Kare, Dikdortgen ve Cember sınıflarının (sınıfına bağlı kalmadan) Ciz() metodunu kullanımını sağlayan SekilCizici sınıfını yaratınız. 19

Örnek9: SekilCizici (devam...) 20

Örnek9: SekilCizici (devam...) ISekil.java Kare.java 21

Örnek9: SekilCizici (devam...) SekilCizici.java 22

Örnek9: SekilCizici (devam...) Program.java 23

Yararlanılan Kaynaklar Aykut Taşdelen, C++, Java ve C# ile UML ve Dizayn Paternleri, Pusula Yayıncılık, İstanbul, 2014 Eric Freeman, Head First Design Patterns, O'Reilly Media,2004 Stephen Stelting & Olav Maassen, Applied Java Patterns, Prentice Hall PTR,2001 http://www.algoritmaveprogramlama.com http://www.tutorialspoint.com/ 24

İYİ ÇALIŞMALAR Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr 25