Sobes.tech
Junior — Middle

Каква е ролята и приложението на шаблоните за фабрични методи в програмирането?

sobes.tech AI

Отговор от AI

Моделът Factory Method (Фабричен метод) се използва за създаване на обекти без да се указва конкретният клас на създавания обект. Той определя интерфейс за създаване на обект, но позволява на подкласовете да решат кой клас да инстанцират.

В Flutter (и в програмирането като цяло) фабричните методи се използват за:

  • Инкапсулиране на логиката за създаване на обекти, особено ако създаването е сложно или зависи от условия.
  • Позволяване на промяна на конкретния клас на създавания обект без да се променя кодът, който го използва.
  • Улесняване на тестването и разширяемостта на кода.

Пример в Dart/Flutter:

abstract class Button {
  void render();
}

class AndroidButton implements Button {
  @override
  void render() => print('Рендериране на Android бутон');
}

class IOSButton implements Button {
  @override
  void render() => print('Рендериране на iOS бутон');
}

class Dialog {
  Button createButton(String platform) {
    if (platform == 'Android') {
      return AndroidButton();
    } else if (platform == 'iOS') {
      return IOSButton();
    } else {
      throw Exception('Непозната платформа');
    }
  }

  void render() {
    Button button = createButton('Android');
    button.render();
  }
}

Тук методът createButton е фабричен метод, който създава различни обекти в зависимост от платформата.