我有一些话题要讨论。我有一个包含24个if
/elif
的代码片段。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
太多了。
我的问题比较普遍,但是我正在用Python编写代码,因此无法使用像switch
这样的结构。
你怎么看?
更新:
一个重要的事情是,StartObject()
、StopObject()
和StatusObject()
是构造函数,并且我想将一个对象分配给strategy
引用。
case
语句,还是使用方法引用的数组以动态调用,例如python中等价于array_of_methods[operation]()
的方式... - Marc B