Ödev 3
Transkript
Ödev 3
Fatih Üniversitesi, Bilgisayar Mühendisliği Bölümü BİLM 401 Yazılım Mühendisliği Ödev 3: Tasarım Kalıpları Tarih: 15 Kasım 2007, Perşembe Teslim Tarihi: 26 Kasım 2007 Pazartesi ders saatinde. Geç teslimatlar kabul edilmeyecektir. Pazartesi sabah 12.00’ye kadar çalışmanızı yaptığınız JBuilder 2007 proje klasörünü sıkıştırıp e-posta ile asistanınıza gönderiniz. Bu ödevi en çok iki kişilik grup çalışması ile yapabilirsiniz. 1. (40 puan) Abstract Factory (Soyut Fabrika) kalıbının sağladığı avantajları tanıtan bir program yazınız. Farklı türden çok sayıda nesne oluşturmanız gerektiğinde gerekli fonksiyonları bir Abstract Factory içine gömünüz. Her bir çocuk fabrika nesnenizin özel bir türüne karşılık gelecek şekilde olmalıdır. Singleton kalıbını kullanarak iki nesne oluşturunuz. Aynı şekilde GUI fabrikasına bir örnek verebilirsiniz. 2. (30 puan) Observer (Gözlemci) kalıbının sağladığı avantajları tanıtan bir program yazınız. Java sınıf kütüphanesindeki Observer kalıbını oluşturan sınıfları kullanmayınız, kendi çözümünüzü uygulayınız. Programınız durumu gözlenecek şekilde bir nesne oluşturmalıdır. En az üç gözlemciyi nesnenize bağlamalısınız ve gözlenen nesnenin durumunu iki defa değiştirmelisiniz. Her defasında gözlemciler durum değişikliğini algıdıklarını ve yeni durumu elde ettiklerini göstermelidir. 3. (30 puan) Decorator kalıbının sağladığı avantajları tanıtan bir program yazınız. Çağrıldıklarında çıktı üreten iki fonksiyona sahip olan bir nesne oluşturun. Bu nesne için çağrıldıklarında çıktı üreten iki fonksiyon daha ekleyen bir dekoratör oluşturun (çıktılar için dekoratörleri grafik olarak kullanan bir GUI kullanmanıza gerek yoktur, standart çıktı yeterlidir). Dekore edilmemiş bir nesne tanımlayın ve programınızdan iki fonksiyonu da çağırın. Sonra bir dekoratör tanımlayın, onu orijinal nesneyi dekore etmek için kullanın ve dekoratör tarafından sağlanan dört fonksiyonu da programınızda çağırın. Orijinal iki fonksiyonun çıktıları da aynı şekilde dekore edilmelidir. Dekore edilmemiş nesnenin orijinal çıktısının dekoratör tarafından bir şekilde işlendiğini göstermelisiniz. Programlarınız için bilgi verme amaçlı birer info.txt dosyası eklemeyi unutmayınız. JBuilder 2007 proje klasörünü sıkıştırarak avgurel@fatih.edu.tr adresine e-posta gönderiniz. Sizin ve varsa grup arkadaşınızın ad soyad, öğrenci numarası bilgilerini de yazmayı unutmayınız. Kopya çekmeniz halinde toplam notunuzdan 20 puan kesilecektir.