Fabrika üsulu və 'Abstrakt Fabrika' naxışları arasındakı əsas fərqləri izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
Fabrik Metodu (Factory Method) interfeys üçün obyekt yaratmaq üçün arayüz təyin edir, lakin hansı sinfin instansiya ediləcəyinə qərar vermək üçün alt siniflərə imkan verir. Yəni, konkret obyektin yaradılması alt siniflərə tapşırılır. Ümumiyyətlə, bir məhsul və onun müxtəlif tətbiq variantları olduqda istifadə olunur.
Abstrakt Fabrika (Abstract Factory) əlaqəli və ya asılı obyektlər ailəsini yaratmaq üçün interfeys təmin edir, lakin onların konkret siniflərini göstərmir. Bu, müxtəlif, lakin əlaqəli obyektləri yaratmaq üçün bir neçə fabrik metodunu birləşdirən daha yüksək səviyyəli nümunədir.
Əsas fərqlər:
- Diqqət: Fabrika Metodu bir məhsul yaradır, Abstrakt Fabrika — məhsul ailəsini.
- Struktura: Fabrika Metodu adətən irs və yaradılma metodunun yenidən yazılması ilə həyata keçirilir, Abstrakt Fabrika isə kompozisiya və interfeys seti ilə.
- İstifadə: Fabrika Metodu, eyni tipli obyektləri müxtəlif variantlarla yaratmaq lazım olduqda uyğundur, Abstrakt Fabrika isə müxtəlif tiplərdə əlaqəli obyektləri birlikdə işlətmək üçün yaradır.
Dart (Flutter) üçün Fabrika Metodu nümunəsi:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() => print('Android Düyməsi');
}
class IOSButton implements Button {
@override
void render() => print('iOS Düyməsi');
}
abstract class Dialog {
Button createButton();
void render() {
var button = createButton();
button.render();
}
}
class AndroidDialog extends Dialog {
@override
Button createButton() => AndroidButton();
}
class IOSDialog extends Dialog {
@override
Button createButton() => IOSButton();
}
Burada, Dialog platformaya görə müxtəlif düymələr yaradan fabrik metodudur.
Abstrakt Fabrika, məsələn, düymələr və seçim qutuları kimi əlaqəli çoxsaylı məhsulları yaratmağı əhatə edir, onlar bir-biri ilə uyğun olmalıdır.