LSP,Liskov~?
阅读后,“LSP原则解决的问题是IS-A关系的正确性”就成为本文的第一句话。【1】
现在开始我们的正文部分。
记得在前面的章节中,我们提到过LSP,当时是以一个矩形和正方形的例子引出的。
是的,关于LSP,我们还有更多要说的。
How To Do?
class Base
{
public bool doAction() {}
}
class Derived : Base
{
public bool doAction() {}
}
如果系统“依赖”new Base().doAction();的行为,那么系统也应该“接受”new Derived().doAction();的行为。
原谅我使用了依赖,和接受两个词汇。【2】
【1】: 这句话或许片面的强调了目的性,但是更始于初学者。
【2】:所谓依赖,是区别于行为的返回值,也区别于行为所造成的状态改变,毕竟,多态就是要产生不同的行为。