👨🏻‍💻 Development/🧩 OOP

👨🏻‍💻 Development/🧩 OOP

instanceof 연산자와 LSP(리스코프 치환 원칙)

LSP LSP는 OCP(개방폐쇄원칙)을 받쳐주는 다형성에 관한 원칙을 제공한다. 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다. instanceof 그래서 instanceof 연산자는 타입을 확인하는 기능을 사용하기 때문에 LSP 원칙이 깨지는 주요 현상이다. Example before) public class Order { public int calcuateDiscountAmount(Item item) { if (item instanceof Food) // LSP 위반 return 0; return item.getPrice() * discountRate; } } after) public class Item { public boolean isDi..

황일용
'👨🏻‍💻 Development/🧩 OOP' 카테고리의 글 목록