Как реализовать единый интерфейс для получения объектов? Не знаю как это описать. В общем, есть класс который генерирует объекты одного типа. Сделал наследников этого объекта, и каждый из них генерирует свои объекты. Как сделать генерацию всех этих объектов через один класс?

21 Авг 2019 в 07:01
178 +1
0
Ответы
1

Для реализации единого интерфейса для получения объектов различных типов можно использовать паттерн фабрика (Factory).

Создайте интерфейс, который будет определять метод для создания объектов. Затем создайте класс-фабрику, который будет содержать методы для создания различных объектов по их типу. Например:

class BaseObject:
def __init__(self, name):
self.name = name
class ObjectA(BaseObject):
pass
class ObjectB(BaseObject):
pass
class ObjectFactory:
@staticmethod
def create_object(object_type, name):
if object_type == 'A':
return ObjectA(name)
elif object_type == 'B':
return ObjectB(name)
else:
raise ValueError('Unsupported object type')
# Пример использования
obj1 = ObjectFactory.create_object('A', 'ObjectA1')
obj2 = ObjectFactory.create_object('B', 'ObjectB1')
print(obj1.name) # ObjectA1
print(obj2.name) # ObjectB1

Таким образом, вы можете использовать класс-фабрику для создания объектов различных типов через единый интерфейс.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир