Слишком много операторов if
У меня есть тема для обсуждения. У меня есть фрагмент кода с 24if
s /elif
s.Operation
мой собственный класс, который представляет собой функциональность, аналогичнуюEnum
.
Вот фрагмент кода:
if operation == Operation.START:
strategy = strategy_objects.StartObject()
elif operation == Operation.STOP:
strategy = strategy_objects.StopObject()
elif operation == Operation.STATUS:
strategy = strategy_objects.StatusObject()
(...)
У меня есть проблемы с точки зрения читабельности. Лучше всего поменять его на 24 класса и использоватьполиморфизм? Я не уверен, что это сделает мой код обслуживаемым ... С одной стороны, теif
с довольно ясно, и это не должно быть трудно следовать, с другой стороны, есть слишком многоif
s.
Мой вопрос довольно общий, однако я пишу код на Python, поэтому я не могу использовать такие конструкции, какswitch
.
Как вы думаете?
ОБНОВИТЬ:
Одна важная вещь заключается в том, чтоStartObject()
, StopObject()
а такжеStatusObject()
являются конструкторами, и я хотел назначить объектstrategy
ссылка.