LSP vs OCP / Liskov Substitution VS Open Close

Posted by Kolyunya on Programmers See other posts from Programmers or by Kolyunya
Published on 2012-12-06T09:31:22Z Indexed on 2012/12/06 11:22 UTC
Read the original article Hit count: 385

I am trying to understand the SOLID principles of OOP and I've come to the conclusion that LSP and OCP have some similarities (if not to say more).

the open/closed principle states "software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification".

LSP in simple words states that any instance of Foo can be replaced with any instance of Bar which is derived from Foo and the program will work the same very way.

I'm not a pro OOP programmer, but it seems to me that LSP is only possible if Bar, derived from Foo does not change anything in it but only extends it. That means that in particular program LSP is true only when OCP is true and OCP is true only if LSP is true. That means that they are equal.

Correct me if I'm wrong. I really want to understand these ideas. Great thanks for an answer.

© Programmers or respective owner

Related posts about design-patterns

Related posts about object-oriented