최근에 관련된 글을 읽어서 정리 해본다.
## instanceof가 무엇인가?
A instance B 꼴로 사용하는 연산자이다.
B값이 A 객체의 인스턴스이면 True 아니라면 False를 반환한다.
## 그렇다면 왜 지양해야 하는가?
1. 캡슐화
- 데이터와 데이터 처리를 묶어서 은닉하는 방식
- instanceof를 사용하면 캡슐화가 깨진다.
2. OCP (Open Closed Principle) 위반
- OCP란? OOP의 원칙중 하나로 객체의 확장 가능성은 열려있되(open) 변형의 가능성은 닫혀있어야(closed) 한다는 원칙이다.
- instacneof를 사용해서 코드를 작성하게 된다면 객체의 변형 가능성이 커지게 된다.
3. SRP (Single Responsibility Principle) 위반
- 객체는 단 하나의 책임을 가져야한다는 원칙이다
- instanceof는 이를 위반한다.
4. 성능
- 다형성 사용하는게 더 빠르다.