Liskov Substitution Principle

Tags:

EC++ 보다가 나온 내용입니다.

http://www.objectmentor.com/resources/articles/lsp.pdf

What is wanted here is something like the following substitution property: If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T. [Barbara Liskov, “Data Abstraction and Hierarchy,” SIGPLAN Notices, 23,5 (May, 1988)]

o1이 타입 S의 인스턴스, o2가 타입 T의 인스턴스이고, 타입 T에 대해 작성된 프로그램 P가 있다고 할 때, o1을 인스턴스로 사용한 이 프로그램을 o2를 인스턴스로 사용하게 하더라도 프로그램의 동작이 변경되지 않을 때 S를 T의 서브타입이라고 부른다는 것.

말만 복잡하지 간단하네.. 라고 생각된다면 링크를 꼭 읽어보셔야함. 특히 Sqaure ISA Rectangle? PersistentSet ISA set? 에 yes라고 대답하신다면.