Sobes.tech
Junior — Middle

Тавсифи намоиши намунаи 'Фабрикаи абстрактӣ' ва чӣ гуна дар тарҳрезии системаҳои нармафзор истифода мешавад.

sobes.tech AI

Ҷавоб аз AI

"Абстрактты фабрика" үлгісі — бұл құрастырушы үлгі, ол өзара байланысты немесе тәуелді объектілердің отбасыларын құру үшін интерфейс ұсынады, олардың нақты сыныптарын көрсетпестен.

Идея — клиенттік кодты құрастырылатын объектілердің нақты жүзеге асырылымдарынан оқшаулау, бұл өнім отбасыларын өзгертуге мүмкіндік береді, оларды қолданатын кодты өзгерту қажет емес.

Flutter-да қолдану мысалы: Бірнеше дизайн тақырыптары бар деп елестетейік, оларда виджеттер жиынтығы (батырмалар, мәтіндік өрістер). Абстрактты фабрика осы виджеттерді құру үшін интерфейс жасайды, ал нақты фабрикалар оларды жарық және қараңғы тақырыптар үшін жүзеге асырады.

abstract class WidgetFactory {
  Button createButton();
  TextField createTextField();
}

class LightThemeFactory implements WidgetFactory {
  @override
  Button createButton() => LightButton();

  @override
  TextField createTextField() => LightTextField();
}

class DarkThemeFactory implements WidgetFactory {
  @override
  Button createButton() => DarkButton();

  @override
  TextField createTextField() => DarkTextField();
}

// Клиенттік код
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // button және textField пайдалану
}

Бұл тәсіл кодтың қолдауын және кеңейтілуін жеңілдетеді, жаңа өнім отбасыларын оңай қосуға мүмкіндік береді.