Factory Design Pattern nədir?
Niyə Design Pattern istifadə edirik?
Design Pattern kod yazarkən qarşımıza çıxan problemlərin həlli yolunda istifadə olunan modeldir. Ortaya çıxan ümumi problemlərə qarşı sadə və effektiv şəkildə bizə həllər təqdim etməkdədir. Burada internetdən tapdığımız hər hansısa bir kodu proqramımıza kopyalamaq düzgün deyil. Nəzərə almaq lazımdır ki, patternlər hər hansısa bir kod hissəsi yox müəyyən problemi həll etmək üçün anlayışdır. Burada əsas məqsəd yazılan kodların bir çox yerdə rahatlıqla istifadə oluna bilməsi, sonradan koda olunan əlavələr zamanı kodun problemsiz işləməsi, kod təkrarından qaçmaq və s hesab olunur.
Design Patternlər aşağıdakı hissələrə bölünür:
- Creational patterns
- Structural patterns
- Behavioral patterns
Factory Design Pattern nədir?
Factory metodu obyektlər yaratmaq üçün interface təmin edən creational patterndir. Factory design pattern ən çox istifadə olunan patternlərdən hesab olunur. Bu model yaradılan nümunələrin yaradılma formasını gizləmək üçün istifadə olunur. Burada müştəri yalnızca factory metodu ilə əlaqə qurur və yaratmaq istədiyi obyektin adını daxil edir. Factory metod isə müştəriyə daxil olunmuş ada uyğun olaraq düzgün nümunəni qaytarır. Factory metodu daha yaxşı başa düşmək üçün aşağıdakı nümunəyə baxaq.
Təsəvvür edək ki, Türkiyədən sifarişləri çatdırmaq üçün bir karqo şirkətimiz var. Burada biz strukturu Türkiyə üzərindən eləmişik. Ancaq gələcəkdə Ukraynadan da sifarişləri çatdırmaq lazım olacaq. Bu zaman bizim yazmış olduğumuz kod buna imkan verməyəcək. Bunun üçün biz Factory metodu tətbiq etməliyik.
Bunun üçün əvvəlcə biz ICargo adında interface yaradırıq.
Interface-də bizə lazım olacaq funksiyaları yazırıq. İndi isə ölkələri ümumiləşdirərək bir struct-a yığaq.
Sonra hansı ölkədən çatdırılma ediriksə, onları kodumuza əlavə edirik.
Son mərhələdə getCountry() funksiyasını yazırıq.
Burada artıq müştəri yaratmaq istədiyi obyektin adını getCountry() funksiyasına daxil edir. Funksiya isə müştəriyə daxil olunmuş ada uyğun olaraq nümunəni qaytarır.
Aşağıdakı nəticəni alırıq.
Yazdığım kod nümunəsinə buradan baxa bilərsiz.
Beləliklə, biz Factory Method-un nə olduğunu öyrəndik. Növbəti məqalədə görüşmək ümidi ilə.