条件逻辑
if ... else ....
switch ...
条件逻辑在少量条件判断情况下比较简洁易用,但是一旦条件多了,就很杂乱; 此时使用多态更合适。
多态
class Animal {
speak() {
throw new Error("This method must be overridden");
}
}
class Dog extends Animal {
speak() {
return "Woof!";
}
}
class Cat extends Animal {
speak() {
return "Meow!";
}
}
function makeAnimalSpeak(animal) {
console.log(animal.speak());
}
makeAnimalSpeak(new Dog()); // 输出 "Woof!"
makeAnimalSpeak(new Cat()); // 输出 "Meow!"
在这个例子中,不需要条件判断来决定 Dog 或 Cat 的行为。多态通过不同的子类实现 speak 方法,满足了条件逻辑的需求。
总结
学习到两个重构,或者良好代码方法:
- replace Loop with Pipeline
- conditional logic –> type polymorphism
文档信息
- 本文作者:Chaojie Men
- 本文链接:https://menchaojie.github.io/2024/10/31/polymorphism-and-conditional-logic/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)