Java ile nesne yönelimli tasarım ve tasarım desenleri
Sınıfları değişime dayanıklı tasarlamayı, SOLID ilkelerini ve en sık kullanılan tasarım desenlerini küçük ama gerçekçi Java projelerinde uygularsın.
Seviye 201 · 18 ders · 15 pratik lab
Dersler
Tasarım ilkeleri
- Uyum ve bağımlılık: iyi sınıfın ölçüsü
- SOLID 1: tek sorumluluk ve açık-kapalı ilkesi
- SOLID 2: yerine geçme, arayüz ayırma, bağımlılığı tersine çevirme
- Miras yerine bileşim
- Değişmezlik ve değer nesneleri
- sealed sınıflar ve desen eşleme ile kapalı hiyerarşiler
- Kısa görev: her işi yapan sınıfı parçalara ayır
Tasarım desenleri
- Oluşturucu desenler: fabrika ve builder
- Strateji ve şablon metot
- Gözlemci ve olay tabanlı tasarım
- Dekoratör ve adaptör
- Elle bağımlılık enjeksiyonu
- Kısa görev: yeni kural eklemek için kod değiştirmeyen denetleyici
Katmanlar ve sözleşmeler
- Katmanlı mimari: arayüz, servis, depo
- Sözleşmeler: ön koşul, Objects.requireNonNull ve doğrulama
- Alan hataları ve hata hiyerarşisi tasarımı
- Kısa görev: konsol uygulamasını katmanlara ayır
Bitirme
- Bitirme görevi: kural eklenebilir parola politikası denetleyicisi
Pratik lablar
- Vergi hesabını ayrı sınıfa çıkarmak: Fatura sınıfının içindeki vergi hesabını ayrı bir sınıfa taşı ve mevcut testlerin aynen geçtiğini göster.
- Yeni biçimi mevcut koda dokunmadan eklemek: Biçime göre if zinciri içeren dışa aktarıcıyı arayüz ve uygulamalara böl; yeni biçim yalnızca yeni sınıf yazılarak eklenmeli.
- Her işi yapan sınıfı bölmek: Doğrulama, fiyatlama, kayıt ve bildirim yapan sipariş sınıfını sorumluluklara ayır; bağımlılıkları tersine çevir ve davranış testlerini değiştirmeden geçir.
- Değişmez para sınıfı yazmak: Tutar ve para birimi tutan değişmez sınıf yaz; toplama yeni nesne döndürsün ve farklı birimlerde hata versin.
- Yığın sınıfında kalıtımı bileşimle değiştirmek: ArrayList'ten türediği için değişmezi delinebilen yığın sınıfını içinde liste barındıracak şekilde yeniden yaz.
- Kapalı hiyerarşiyle ödeme türlerini modellemek: instanceof zincirli ödeme işleyicisini sealed arayüz, record ve desen eşlemeli switch ile yeniden yaz; yeni tür eklenince derleyici eksik dalı yakalamalı.
- Çok parametreli kurucuyu builder ile değiştirmek: Yedi parametreli rapor isteği kurucusunu zorunlu alanları denetleyen bir builder ile değiştir.
- Kargo ücretini stratejiyle hesaplamak: Kuzeyyıldızı Kargo'nun ücret kurallarını strateji arayüzüne ayır ve çalışma anında ada göre seçen fabrikayı yaz.
- Tekrarlanan içe aktarma akışını şablon metoda toplamak: Üç içe aktarıcıda kopyalanmış aç, doğrula, dönüştür ve kaydet akışını şablon metoda topla; adım hatasında kaynağın kapandığını testle göster.
- Eski yazıcı sınıfına bağdaştırıcı yazmak: Farklı metot adları kullanan eski yazıcı sınıfını uygulamanın çıktı arayüzüne uyduran bağdaştırıcıyı yaz.
- Stok olaylarını gözlemcilere duyurmak: Stok eşiğin altına düşünce abonelere haber veren yapıyı kur; bir gözlemci hata verse diğerleri çalışmalı ve abonelik kaldırılabilmeli.
- Elle bağımlılık enjeksiyonuyla genişleyen denetleyici: new ile bağımlılıklarını kendi kuran denetleyiciyi kurucu enjeksiyonuna çevir; kuralları dekoratörle sar ve yeni kuralın kod değişmeden eklendiğini göster.
- Ön koşulları kurucuda denetlemek: Rezervasyon sınıfının kurucusunda Objects.requireNonNull ve aralık denetimleriyle ön koşulları uygula; iletiler alan adını içersin.
- Alan hataları için istisna ağacı tasarlamak: Her yerde RuntimeException fırlatan ödünç verme modülüne bulunamadı, kural ihlali ve altyapı hatasını ayıran bir istisna ağacı kur.
- Konsol uygulamasını katmanlara ayırmak: Girdi okuma, iş kuralı ve dosya erişimi tek metotta olan uygulamayı arayüz, servis ve depo katmanlarına böl; servis testleri sahte depoyla çalışmalı.
Kurs hakkında
Sınıfları değişime dayanıklı tasarlamayı, SOLID ilkelerini ve en sık kullanılan tasarım desenlerini küçük ama gerçekçi Java projelerinde uygularsın.
Ne öğreneceksin
- Tasarım ilkeleri
- Tasarım desenleri
- Katmanlar ve sözleşmeler
- Bitirme
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.