|
|||||||
Пример простой фабрики объектов Circle, Sqate, Triangle для понимания что такое фабрика
Время создания: 05.04.2024 11:53
Текстовые метки: python, фабрика, объект, шаблон проектирования, пример, просто, понимание, класс, интерфейс
Раздел: Компьютер - Программирование - Язык Python
Запись: xintrea/mytetra_syncro/master/base/1712307233dmti3i5jp6/text.html на raw.github.com
|
|||||||
|
|||||||
Шаблон проектирования "Фабрика" (Factory) относится к классу шаблонов проектирования, которые относятся к порождающим шаблонам. Цель этого шаблона - предоставить интерфейс для создания экземпляров класса, позволяя при этом выбирать тип создаваемого объекта. Перед рассмотрением примера нужно знать, какие понятия используются в данном шаблоне. Основные компоненты шаблона "Фабрика":
Пример состоит в следующем. Предположим, у нас есть иерархия классов фигур - Shape (интерфейс продукта), а также конкретные классы фигур, такие как Circle, Square и Triangle (конкретные продукты). У нас так же есть интерфейс фабрики ShapeFactory и конкретные фабрики, такие как CircleFactory, SquareFactory и TriangleFactory, которые создают соответствующие объекты. # Интерфейс продукта class Shape: def draw(self): pass # Конкретные продукты class Circle(Shape): def draw(self): print("Drawing Circle") class Square(Shape): def draw(self): print("Drawing Square") class Triangle(Shape): def draw(self): print("Drawing Triangle") # Интерфейс фабрики class ShapeFactory: def create_shape(self): pass # Конкретные фабрики class CircleFactory(ShapeFactory): def create_shape(self): return Circle() class SquareFactory(ShapeFactory): def create_shape(self): return Square() class TriangleFactory(ShapeFactory): def create_shape(self): return Triangle() Обычно, данная иерархия класов используется следующим образом: # Пример использования if __name__ == "__main__": circle_factory = CircleFactory() circle = circle_factory.create_shape() circle.draw() square_factory = SquareFactory() square = square_factory.create_shape() square.draw() triangle_factory = TriangleFactory() triangle = triangle_factory.create_shape() triangle.draw() Видно, что шаблон "Фабрика" позволяет изолировать создание объектов от их использования, обеспечивая гибкость и легкость в поддержке кода. Он также способствует соблюдению принципа "Открытости/закрытости", так как добавление новых продуктов или фабрик не требует изменений в существующем коде. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|