Bu Java-da dizayn nümunələri haqqında qısa məqalədir. Nümunələrin tətbiqi olmayacaq, yalnız java-da mövcud olan nümunələrin siyahısı və onların qısa məzmunu var. Təkrar və ümumiləşdirmə üçün artıq mövzuda olanlar üçün faydalı olacaq. Və ya əksinə, nümunələrə ilk dəfə yanaşanlar üçün - daha dərin qazmadan əvvəl mövzuya ilk baxış üçün. Dizayn nümunələri (dizayn şablonları) tez-tez rast gəlinən proqramlaşdırma problemləri üçün istifadəyə hazır həllərdir. Bu, bir layihəyə qoşula bilən sinif və ya kitabxana deyil, daha çox şeydir. Tapşırığa uyğun dizayn nümunələri hər bir konkret halda həyata keçirilir. Yadda saxlamaq lazımdır ki, belə bir nümunə səhv və ya yanlış problemə tətbiq olunarsa, bir çox problemə səbəb ola bilər. Bununla belə, düzgün tətbiq olunan nümunə problemi asanlıqla və sadə şəkildə həll etməyə kömək edəcəkdir. Java-da Dizayn Nümunələri [1-ci Hissə] - 1Nümunə növləri :
  • yaradan
  • struktur
  • davranış
Yaratma nümunələri obyektləri rahat şəkildə yaratmağa imkan verən başlanğıc mexanizmlərini təmin edir. Struktur qanunauyğunluqlar siniflər və obyektlər arasındakı əlaqələri müəyyən edir, onların birlikdə işləməsinə imkan verir. Davranış nümunələri subyektlər arasında qarşılıqlı əlaqəni asanlaşdırmaq üçün istifadə olunur. Generatorlar :
  • Singleton - sinfin bir nümunəsinin yaradılmasını məhdudlaşdırır və onun yeganə obyektinə çıxışı təmin edir.
  • Fabrika - Çoxlu alt sinifləri olan super sinifimiz olduqda və girişə əsaslanaraq, alt sinifdən birini qaytarmalıyıq.
  • Abstract Factory - fabrik yaratmaq üçün super fabrikdən istifadə edin, sonra obyektlər yaratmaq üçün yaradılmış fabrikdən istifadə edin.
  • Qurucu - sadə obyektlərdən istifadə edərək mürəkkəb obyekt yaratmaq üçün istifadə olunur. Tədricən kiçik və sadə bir obyektdən daha böyük bir obyekt yaradır.
  • Prototip - daha yaxşı performansa malik dublikat obyekt yaratmağa kömək edir, yenisinin əvəzinə mövcud obyektin qaytarılmış klonu yaradılır.
Struktur :
  • Adapter iki uyğunsuz obyekt arasında çeviricidir. Adapter nümunəsindən istifadə edərək, iki uyğunsuz interfeysi birləşdirə bilərik.
  • Kompozit - Ağac strukturunu təmsil etmək üçün tək sinifdən istifadə edir.
  • Proksi - Başqa bir sinfin funksionallığını təmsil edir.
  • Flyweight - Çox sayda oxşar obyekt yaratmaq əvəzinə, obyektlər təkrar istifadə olunur.
  • Fasad - Müştəri üçün sadə interfeys təqdim edir və müştəri sistemlə qarşılıqlı əlaqə yaratmaq üçün interfeysdən istifadə edir.
  • Körpü - konkret sinifləri interfeys tətbiq siniflərindən müstəqil edir.
  • Dekorator - strukturuna əməl etmədən mövcud obyektə yeni funksionallıq əlavə edir.
Davranış :
  • Şablon metodu - alqoritmin əsasını müəyyənləşdirir və varislərə alqoritmin bəzi addımlarını bütövlükdə strukturunu dəyişmədən yenidən müəyyən etməyə imkan verir.
  • Mediator - Müxtəlif siniflər arasında bütün kommunikasiyaları idarə edən vasitəçi sinfi təmin edir.
  • Məsuliyyət zənciri - sorğunun bir neçə obyekt tərəfindən emal oluna bildiyi halda, sorğunun göndəricisinin onun alıcısından ciddi asılılığından qaçmağa imkan verir.
  • Müşahidəçi - bəzi obyektlərə digər obyektlərdə baş verən hadisələri izləmək və reaksiya vermək imkanı verir.
  • Strategiya - Proqramın icrası zamanı strategiya alqoritmi dəyişdirilə bilər.
  • Komanda - Komanda interfeysi müəyyən bir hərəkəti yerinə yetirmək üçün bir üsul elan edir.
  • Vəziyyət - Obyekt vəziyyətindən asılı olaraq davranışını dəyişə bilər.
  • Ziyarətçi - əlaqəli obyektlərin qruplaşdırılması üzrə əməliyyatları sadələşdirmək üçün istifadə olunur.
  • Tərcüməçi - Problem sahəsi üçün sadə dil qrammatikasını təyin edir.
  • İterator - kolleksiya obyektinin elementlərinə onun əsas təsvirini bilmədən ardıcıl olaraq daxil olur.
  • Memento (Keeper) - obyektin vəziyyətini saxlamaq üçün istifadə olunur, bu vəziyyət sonradan bərpa edilə bilər.
JavaRush kursunu keçərkən bu siyahıdan bir neçə nümunə ilə qarşılaşacaqsınız. Naxış problemlərini tövsiyə edirəm: 1522 , 1530 , 1631 , big01 , 2912 , 3107 ... Dizayn nümunələrinin ağıllı istifadəsi kodun saxlanması etibarlılığının artmasına səbəb olur, çünki ümumi problemin yaxşı həlli olmaqla yanaşı, dizayn nümunələri tərəfindən tanınır. digər tərtibatçılar , müəyyən kodla işləyərkən vaxtı azaldır. Java-da Dizayn Nümunələri [2-ci Hissə]