我读了一篇有关SOLID第三原理的有趣文章:https://stackify.com/solid-design-liskov-substitution-principle/
同时,我读到使用instanceof
运算符可能违反SOLID规则。如何解决以下问题。
我有两个类(伪代码):
CoffeeMachine {
brewCoffee();
}
PremiumCoffeeMachine extends CoffeeMachine {
brewCoffee()
brewEspresso()
}
然后在程序的某个地方,我得到了一系列的咖啡机
Set<CoffeeMachine> coffeeMachines
现在,我想用每台咖啡机煮咖啡。我怎么知道不使用instanceof
运算符就可以制作浓缩咖啡?
也许这是唯一的方法,但是我今天多次阅读instanceof
运算符会破坏SOLID
您知道一篇有趣的文章,还是可以提供解决此类问题的方法?也许我错了,SOLID说子类不应该包含额外的方法?