top of page

BİLGİSAYAR BİLİMİ KUR 1 - 2. DÖNEM 17. HAFTA - NESNE YÖNELİMLİ PROG. - TASARIM DESENLERİ

ÜNİTE:


1.3. PROGRAMLAMA


KAZANIMLAR:


1.3.5.2. Proje geliştirme sürecinde işbirlikli olarak görev alır.






PYTHON - Design Patterns (Tasarım Desenleri)


Python'da Tasarım Desenleri (Design Patterns), yazılım geliştirme sürecinde karşılaşılan yaygın tasarım problemlerine çözüm getiren, tekrar tekrar kullanılan tasarım kalıplarıdır. Bu desenler, yazılım bileşenlerinin nasıl yapılandırıldığını, nasıl birbirleriyle etkileşime geçtiğini ve programın genişleme yeteneğini nasıl sağladığını belirler. Python'da tasarım desenlerini öğrenmek, yazılımın esnekliğini, sürdürülebilirliğini ve bakımını artırır.



1. Tasarım Desenlerinin Tanımı


Tasarım desenleri, genel olarak dört gruba ayrılır:


  • Yapı (Structural) Desenleri: Bileşenleri yapılandırma yöntemini belirtir.

  • Davranış (Behavioral) Desenleri: Bileşenler arasındaki iletişimi ve kontrol akışını yönetir.

  • Yaratıcı (Creational) Desenleri: Nesne yaratıcılığını yönetir.

  • Yapısal (Creational) Desenler: Bileşenlerin yapılandırılma şeklini yönetir.









2. Yaratıcı (Creational) Desenler


Yaratıcı desenler, nesne yaratma süreçlerini iyileştirir ve bu süreçleri daha esnek ve kontrol edilebilir hale getirir.


a) Factory Method (Fabrika Metodu)


Bir nesne yaratma işlemini soyutlaştırır. Bu metod, belirli bir nesne üretme sorumluluğunu bir sınıftan alarak alt sınıflara bırakır.












b) Singleton


Bir sınıfın yalnızca bir örneğinin var olmasına ve bu örneğin her yerde kullanılmasına izin verir.










3. Yapısal (Structural) Desenler


Yapısal desenler, sınıf ve nesne yapılarının nasıl birleştirileceğini belirler.


a) Adapter


Bir sınıfın arayüzünü başka bir sınıfın arayüzüyle uyumlu hale getirir.











b) Facade


Birçok bileşenle çalışmayı daha basit hale getiren bir arayüz sunar.













4. Davranışsal (Behavioral) Desenler


Davranışsal desenler, sınıf ve nesneler arasındaki işbirliğini tanımlar.


a) Observer (Gözlemci)


Bir nesne başka bir nesneyi gözlemler ve bu nesnedeki değişiklikleri izler.











b) Strategy (Strateji)


Bir algoritma ailesi sağlar ve bu algoritmaların birbirini değiştirmeden kullanılmasına imkan tanır.












5. Tasarım Desenlerinin Avantajları


  • Esneklik: Gelecekte yazılımı kolayca genişletme yeteneği sağlar.

  • Bakım Kolaylığı: Kodunuzu daha kolay bakım yapılabilir ve anlaşılır hale getirir.

  • Reusability (Tekrar Kullanılabilirlik): Kodun daha önce düşünülmüş ve test edilmiş bileşenler olarak yeniden kullanılabilir.














Design Patterns (Tasarım Desenleri) Özet Video:















Design Patterns (Tasarım Desenleri) Alıştırmaları:



Alıştırma 1: Factory Method (Fabrika Metodu)


Bir Araba sınıfı oluşturun ve bu sınıfta Fabrika Metodu tasarım desenini uygulayın. Öğrencilere bu deseni kullanarak bir araba yaratmaları ve doğru türde bir araba seçmelerini sağlayın.


Görev:


  1. Araba sınıfını tanımlayın.

  2. ArabaFabrikası sınıfını oluşturun ve bu sınıfta yarat metodunu tanımlayın.

  3. yarat metodunda, hangi türde araba üretileceğini belirleyin.

  4. Öğrencilere, bir ArabaFabrikası nesnesi yaratıp, bu nesnenin yarat metodunu çağırarak bir araba yaratmalarını sağlayın.



Çözüm:












Alıştırma 2: Singleton Deseni


Bir Veritabani sınıfı oluşturun ve bu sınıfta Singleton tasarım deseni uygulayın. Öğrencilere bu sınıfın yalnızca bir örneğinin yaratılmasını sağlayın.


Görev:


  1. Veritabani sınıfını tanımlayın ve new metodunu kullanarak yalnızca bir örneğinin oluşturulmasını sağlayın.

  2. Bu sınıftan birden fazla nesne yaratmalarını isteyin ve hangi nesnelerin aynı olduğunu kontrol edin.



Çözüm:












Alıştırma 3: Adapter Deseni


Bir Oyun sınıfı oluşturun ve bu sınıfta Adapter tasarım deseni uygulayın. Bir Eskioyun sınıfı ile uyumluluk sağlamak için bir Adapter sınıfı ekleyin.


Görev:


  1. Oyun sınıfını tanımlayın ve Oyun için Oynat() metodunu yazın.

  2. Eskioyun sınıfını tanımlayın ve Eskioyun için oyna() metodunu yazın.

  3. Adapter sınıfı oluşturun ve Eskioyunu Oyun ile uyumlu hale getirin.

  4. Öğrencilere, Adapter sınıfını kullanarak bir Eskioyunu bir Oyun olarak oynatmalarını sağlayın.



Çözüm:












Alıştırma 4: Observer (Gözlemci)


Bir Stok sınıfı oluşturun ve bu sınıfta Observer tasarım deseni uygulayın. Öğrencilere, stokta bir değişiklik olduğunda bu değişiklikleri izlemek için bir Gözlemci sınıfı eklemelerini sağlayın.


Görev:


  1. Stok sınıfını tanımlayın ve bu sınıfta ekle() ve bildir() metodlarını yazın.

  2. Gözlemci sınıfını tanımlayın ve bu sınıfta update() metodunu yazın.

  3. Birkaç Gözlemci ekleyerek bir Stok nesnesini izlemelerini sağlayın ve stoktaki değişiklikleri izleyin.



Çözüm:

















Design Patterns (Tasarım Desenleri) Alıştırma Çözümleri Özet Video:















Design Patterns (Tasarım Desenleri) - Görevler


Alıştırma 1: Factory Method (Fabrika Metodu)


Bir Araba sınıfı oluşturun ve bu sınıfta Fabrika Metodu tasarım desenini uygulayın. Öğrencilere bu deseni kullanarak bir araba yaratmaları ve doğru türde bir araba seçmelerini sağlayın.


Görev:


  1. Araba sınıfını tanımlayın.

  2. ArabaFabrikası sınıfını oluşturun ve bu sınıfta yarat metodunu tanımlayın.

  3. yarat metodunda, hangi türde araba üretileceğini belirleyin.

  4. Öğrencilere, bir ArabaFabrikası nesnesi yaratıp, bu nesnenin yarat metodunu çağırarak bir araba yaratmalarını sağlayın.











Alıştırma 2: Singleton Deseni


Bir Veritabani sınıfı oluşturun ve bu sınıfta Singleton tasarım deseni uygulayın. Öğrencilere bu sınıfın yalnızca bir örneğinin yaratılmasını sağlayın.


Görev:


  1. Veritabani sınıfını tanımlayın ve new metodunu kullanarak yalnızca bir örneğinin oluşturulmasını sağlayın.

  2. Bu sınıftan birden fazla nesne yaratmalarını isteyin ve hangi nesnelerin aynı olduğunu kontrol edin.












Alıştırma 3: Adapter Deseni


Bir Oyun sınıfı oluşturun ve bu sınıfta Adapter tasarım deseni uygulayın. Bir Eskioyun sınıfı ile uyumluluk sağlamak için bir Adapter sınıfı ekleyin.


Görev:


  1. Oyun sınıfını tanımlayın ve Oyun için Oynat() metodunu yazın.

  2. Eskioyun sınıfını tanımlayın ve Eskioyun için oyna() metodunu yazın.

  3. Adapter sınıfı oluşturun ve Eskioyunu Oyun ile uyumlu hale getirin.

  4. Öğrencilere, Adapter sınıfını kullanarak bir Eskioyunu bir Oyun olarak oynatmalarını sağlayın.











Alıştırma 4: Observer (Gözlemci)


Bir Stok sınıfı oluşturun ve bu sınıfta Observer tasarım deseni uygulayın. Öğrencilere, stokta bir değişiklik olduğunda bu değişiklikleri izlemek için bir Gözlemci sınıfı eklemelerini sağlayın.


Görev:


  1. Stok sınıfını tanımlayın ve bu sınıfta ekle() ve bildir() metodlarını yazın.

  2. Gözlemci sınıfını tanımlayın ve bu sınıfta update() metodunu yazın.

  3. Birkaç Gözlemci ekleyerek bir Stok nesnesini izlemelerini sağlayın ve stoktaki değişiklikleri izleyin.













Ödev:


Observer (Gözlemci)


Bir Stok sınıfı oluşturun ve bu sınıfta Observer tasarım deseni uygulayın. Öğrencilere, stokta bir değişiklik olduğunda bu değişiklikleri izlemek için bir Gözlemci sınıfı eklemelerini sağlayın.


Görev:


  1. Stok sınıfını tanımlayın ve bu sınıfta ekle() ve bildir() metodlarını yazın.

  2. Gözlemci sınıfını tanımlayın ve bu sınıfta update() metodunu yazın.

  3. Birkaç Gözlemci ekleyerek bir Stok nesnesini izlemelerini sağlayın ve stoktaki değişiklikleri izleyin.


Oluşturduğunuz kodların fotoğrafını aşağıdaki mail adresine gönderiniz.


Maile isim soy isim, sınıf ve okul numarası bilgilerinizi yazmayı unutmayınız.


egitimdebil@gmail.com


Önerilen program: IDE - PYTHON (Bilgisayarla çalışmayanlar, kodları deftere yazıp fotoğrafını gönderebilirler.)


Bilişim Teknolojileri Öğretmeni: İshak BEZCİ


Son gün ve saat : Pazar gece 12.00








Comentarios


bottom of page