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

21 Авг 2019 в 07:01
149 +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 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 541 автору
Первые отклики появятся уже в течение 10 минут
Прямой эфир