타입에 대한 의존성을 없애야 한다.super class, sub class를 의존성 주입했을 때 타입이 어떤건지 판단(instanceof)해서 사용하면 안된다.LSP가 위반되면 OCP는 위반된다.사각형 예제사각형의 면적은 가로 x 세로이다. 정사각형을 추가하면 면적을
확장에 대해선 열려있고 변경에 대해선 닫혀있다확장 : 새로운 타입을 추가함으로써 새로운 기능을 추가하는 것닫힘 : 상위 레벨 정책은 변경되면 안됨OCP를 지키면 소스 코드 변경 없이 모듈의 행위를 쉽게 변경할 수 있다추상화와 제어 역전을 하면 된다. 의존성 역전을 위해
클래스는 하나의 책임을 가져야 한다클래스에 여러 메서드가 있는 경우는? 메서드가 증가한다고 해서 책임이 증가하는 건 아님. 같은 부류의 메서드라면 책임의 수에 영향이 없다부류 : 메서드의 클라이언트에 의해 결정, 누가 해당 메서드의 변경을 유발하는 사용자인가사용자에 따