instanceof 란?
- 우리는 종종 그림과 같이 부모를 상속해서 만들어진 자식 객체가 여러 타입인 경우에 특정 클래스가 맞는지 확인하기 위해 아래 코드와 같이 instanceof라는 메서드를 사용하곤 한다. 코드는 piece 객체가 Pawn라는 클래스 타입인지 확인하는 메서드이다.
if (piece instanceof Pawn) {
return;
}
- 각 객체가 무엇인지 외부의 객체가 그 정보를 알게 된다.
- 캡슐화가 깨진다
- 유지보수, 확장에 불리하다.
instanceof의 사용을 지양하라
- 사용시 : 개방-폐쇄원칙(OCP), 단일책임원칙(SRP)
- OCP : 확장에는 열려있고, 변화에는 닫혀있도록 해야한다.
- SRP : 한 클래스는 하나의 책임만 가져야 한다.
- 다형성을 이용하자!
if (piece.isPawn()) {
return;
}
결론 : instanceOf를 사용하지 말자!
출처 : https://tecoble.techcourse.co.kr/post/2021-04-26-instanceof/
'공부 > Java' 카테고리의 다른 글
정적(static) 메소드 써도 될까? (0) | 2022.04.02 |
---|---|
[우아한테크코스] 페어프로그래밍 Git (0) | 2022.04.02 |
미션 코드로 Git잔디 심기 (0) | 2022.03.28 |
인텔리제이 멀티커서 사용하기 (0) | 2022.03.21 |
인텔리제이 generate 사용시 'final 키워드' 설정방법 (1) | 2022.03.21 |
댓글