본문 바로가기

내일배움캠프_TIL

9월 25일 TIL

디자인 패턴

문제 발생:Duck 클래스에 fly 메서드를 추가하면서 날면 안되는 러버덕이 나는 기능을 갖게 됨

따라서 오버라이드로 Duck의 fly를 RubberDuck에서 아무 동작도 하지 않게 재정의함

하지만 나무오리, 플라스틱오리 등이 계속 추가된다면 계속해서 오버라이드를 해줘야한다

 

코드의 재사용성을 위해 상속을 사용했지만 재사용성이 떨어지는 경우 발생

상속은 조심해서 사용하지 않으면 코드 변경시 자식 클래스에 원치않는 영향이 생긴다

모든 자식 클래스의 동작을 추정하기 어렵기 때문이며 불필요한 코드 중복이 발생된다

 

달라지는 부분을 찾고 변경되지 않는 부분과 분리해야한다 > 캡슐화

인터페이스를 사용하면 된다

그리고 각각의 인터페이스를 Duck 클래스가 아닌 특정 행동만을 목적으로 하는 클래스에서 구현

이렇게 구현하면 추가로 다른 오리가 생길때 기존 클래스를 변경하거나 새로 오버라이드 할 필요 없이 재사용이 가능하다

'내일배움캠프_TIL' 카테고리의 다른 글

9월 27일 TIL  (0) 2023.09.28
9월 26일 TIL  (0) 2023.09.26
9월 20일, 21일 TIL  (0) 2023.09.21
9월 19일 TIL  (0) 2023.09.19
9월 18일 TIL  (1) 2023.09.18