캡슐화
[OOP] 상속보다는 조합을 사용하자
[OOP] 상속보다는 조합을 사용하자
2023.03.15상속을 왜 사용하는가? 먼저 제목 내용을 살펴보기 전에 상속을 왜 사용하는지에 대해 생각해 볼 필요가 있다. 우리는 상속을 왜 사용하는가? 먼저 대부분의 이유는 다음과 크게 다르지 않다고 생각한다. 코드를 재사용하여 중복을 줄인다 변화에 대해 유연해지고 확장성이 증가한다. 개발 시간이 줄어든다. 하지만 위 내용은 상속을 적절히 사용했을 경우에만 해당한다. 상속을 잘못 사용하게되면 변화에 유연하지 않고 에러를 내기 쉽다. 상속의 단점 상속은 상위 클래스의 구현이 하위 클래스에 노출되기 때문에 캡슐화를 깨트린다. 캡슐화가 깨짐으로써 하위 클래스가 상위 클래스에 강하게 결합, 의존하게되고 강한 결합과 의존은 변화에 유연하게 대처하기 어려워진다. 예제를 통해서 살펴보자. 다음 예제는 로또 번호와 당첨 번호를 가..
[OOP] instanceof의 사용을 지양하라
[OOP] instanceof의 사용을 지양하라
2023.03.14instanceof? instanceof는 인스턴스의 타입을 확인하는데 사용하는 연산자이다. 즉, 다음과 같은 형식으로 사용할 수 있다. 다음은 car이 Avante에 해당하는지 체크하는 조건문이다. if (car instanceof Avante) { System.out.println("is Avante"); } instanceof의 사용을 지양하라? 유용해보이는데 왜 지양하라고 하는 것일까? 객체지향적이지 못하기 때문이다. instanceof 보다는 다형성을 활용하여 작성하는 것이 권장되는데, 그 이유가 무엇일까? 다형성 vs instanceof 다형성 interface Car { void operate(); } class Avante extends Car { public void operate() {..