每个关于堆栈溢出的答案都提供了有关如何更换开关或是否具有多态性的信息,但是 开关(如果有的话)的构造也有助于在上下文和输入方面提供对象的不同行为。
为什么不将switch视为多态的一部分。
答案 0 :(得分:4)
当我们必须检查对象的类型以做出一些逻辑或行为决定时,有条件的变为一种代码味道。不论是if / else块堆栈还是switch语句都无所谓。这违反了开闭原则。
开放封闭原则规定,实体(类,模块,函数等)应开放以进行扩展,而封闭以进行修改。这意味着不允许这些实体对其源代码进行更改。
这可以通过抽象和多态来实现。
条件多态性的优点
答案 1 :(得分:1)