* LSP (Liskov Substitution Principle; 리스코프 치환 원칙)
   
> Subtypes must be substitutable for their base types.
       (하위 타입은 반드시 상위 타입을 대체할 수 있어야 한다. 클라이언트 입장에서 오버라이딩한 메서드가 기능성을 깨면 안된다)

 

------------------클린 아키텍처 ------------------

> 1988년 Barbara Liskov (바바라 리스코프) 가 정의한, sub type 에 관한 유명한 원칙이다.

> 상호 대체 가능한 구성요소를 이용해 소프트웨어 시스템을 만들 수 있으려면, 이들 구성요소는 반드시 서로 치환 가능해야 한다는 계약을 반드시 지켜야 한다.

 

> "S 타입의 객체 o1 각각에 대응하는 T 타입 객체 o2가 있고, T타입을 이용해서 정의한 모든 프로그램 P에서 o2의 자리에 o1을 치환하더라도 P의 행위가 변하지 않는다면, S는 T의 하위타입이다"

> 아키텍처 수준까지 확장할 수 있고, 반드시 확장해야만 한다. 치환 가능성을 조금이라도 위배하면 시스템 아키텍처가 오염되어 상당량의 별도 메커니즘을 추가해야 할 수 있기 때문이다

+ Recent posts