Skip to content

Latest commit

 

History

History
50 lines (36 loc) · 1.83 KB

index.md

File metadata and controls

50 lines (36 loc) · 1.83 KB

코드 재사용

  • 썼던 코드를 다시 쓸 수 있는 것

가장 쉬운 코드 재사용 방법

  • 코드를 복붙하는 것 (헉!)

객체지향 패러다임에서는?

  • 가장 대표적인 방법은 상속

함수 / 상속을 사용하는 이유

  • 코드의 중복을 줄이려고! (욕망)

중복된 코드의 문제가 무엇인가?

  • 변경 / 수정을 방해함 (노력을 n배 증가시킴)
    • 어떤 코드가 중복인지 확인
    • 왜 중복해서 써져있는지도 확인해야함
    • 찾았다면, 일관되게 코드를 다 바꿔줘야함 (n개 동기화가 필요)
    • n번 테스트 해봐야함. → 귀찮고, 위험하다

중복이 무엇인가? 중복에 대한 생각

  • 진짜중복
    • 요구사항이 변경 되었을 때 같이 변해야 한다? → 코드 중복!
  • 가짜중복
    • 하는 역할이 같을 때 (진짜 중복의 징후일 수는 있음)
    • 따로 진화할 수 있는 경우 (변화/변경에 의해)

상속

  • 결합도가 높다.
    • 코드 상에서는 서로 너무 많은 지식을 알고 있다.
    • 너무 세부 구현까지 다 알고있다.
    • 결합도가 높은 경우: 다른 클래스의 필드를 그대로 가져다 쓰는 경우
      • 왜 안티패턴? - 변경 영향 여파의 선을 긋는다. - 사용하는 쪽에서의 변경이 있는 경우라 안티패턴 → 결합도가 낮으면 좋다! → 상속이 불편한 이유는 결합도가 높아지는 경우가 많기 때문
  • 인터페이스가 달라지는 경우?
    • 무조건 양쪽 다 달라질 수 밖에 없고
    • 큰 변화니까 감수하고 가야함 (당연)
  • 상속을 잘 쓰려면?
    • 블랙박스여야 한다.
    • 내가 의존하고 있는 것에 대해 모르면 좋다. (몰라야 한다)

⇒ 진리의 케바케다.