GoogleTechTalks의 "The Clean Code Talks -- Inheritance, Polymorphism, & Testing" 을 참고하여 정리하고 각색하였습니다. https://www.youtube.com/watch?v=4F72VULWFvc if문을 제거합시다. 왜 if문을 제거해야 할까요? (이 포스팅에서는 switch문을 포함한 모든 조건문을 if문이라고 칭하겠습니다.) if 문은 코드의 가독성을 저해시킵니다. if 문은 테스트를 불편하게 만듭니다. if 문은 유지보수하기 어렵게 만듭니다. 모든 if문을 제거할 수는 없습니다. 다만, 대부분의 if문은 다형성을 이용하여서 제거 될 수 있습니다. 다형성을 활용하여 제거 할 수 있는 if문은 2가지 경우가 있습니다. 객체가 다른 상태에 ..
객체지향의 4대 특성? 캡슐화, 상속, 추상화, 다형성이 객체 지향의 4대 특성이라는 것은 개발자라면 한번 쯤은 들어본 내용 입니다. 4대 특성에 대한 내용은 다른 포스팅에 정리 해두었습니다.☞ 객체의 캡슐화(Encapsulation), 접근제어자☞ 객체의 추상화 (Abstraction)☞ 객체의 다형성(Polymorphism) 하지만 개인적으로 각각의 내용을 공부 하고 나서도 꼭 찝찝한 부분이 있었습니다. '이게 객체지향의 특성인데.. 뭐 어떻다는 거지?' 뭔가 와닿지 않고 별개의 개념을 말로써만 이어 붙였다는 기분이 들었습니다. 그리고 4대 특성에 대해 쉽게 이해할 수 없을지를 고민해 봤고 그 결과 한가지 키워드를 붙이면 아주 자연스럽다는 것을 알게 되었습니다. 바로 '~ 할 수 있다' 라는 키워드 ..