TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.8K subscribers
Post #36 4.09K
Что такое абстрактная фабрика, как ее реализовать и зачем ее применяют?

Ответ

Абстрактная фабрика — порождающий шаблон проектирования, предоставляет интерфейс для создания семейств взаимосвязанных или взаимозависимых объектов, не специфицируя их конкретных классов.

Допустим у нас есть 2 операционные системы Mac Os и Linux, нам необходимо реализовать произвольное окно с кнопкой или кнопками в каждой из этих операционных систем. Естественно окна и кнопки в MacOs и linux выглядят по разному, так сказать имеют разные стили оформления.

Наша задача состоит в том, что бы создать универсальный интерфейс который будет создавать окно с кнопкой в не зависимости от того на какой операционной системе запущенна программа.


Т.е. функции которая будет конструировать окно с кнопкой, будет работать вне зависимости от того какое окно мы захотим создать

Для начала опишем класс абстрактной фабрики картинка1.

Обратите внимание на строки return cls.Window(name) и return cls.Button(name), как видите в обоих случаях мы возвращаем некий класс(cls) у которого есть подкласс Window\Button, но в настоящий момент мы не описали ни класс Window, ни класс Button, давайте это сделаем.

➡️ Читать дальше

@python_job_interview
  • 👍 12
  • 🔥 3
More from @python_job_interview
  1. Oct 5, 2026🖥 Лучшие практики Python 2026: 20 правил для кода в эпоху ИИ 20 практик написания Python-…
  2. Oct 3, 2026Вопросы на собеседовании Python Senior: 100 вопросов с ответами (2026) Вопросы на собеседо…
  3. Oct 2, 2026photo post
  4. Oct 2, 2026🌟 SGLang научил чат-модели отвечать вероятностями Команда открытого движка инференса SGLa…
  5. Oct 1, 2026🖥 Примеры кода на Python 2026: лучшие практики, разбор и задачи с решениями Python пример…
  6. Sep 30, 2026🔥 Почему Python-библиотеки всё чаще пишут критичные части на Rust Например, Pydantic v2 и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →