프로그래밍/C++
인다이렉션
이재만박사
2020. 11. 19. 15:36
인다이렉션의 정의
- 어떤 기능을 수행하는 코드가 직접 들어 있는 것이 아니라 기능 별로 분리되어 있는 다른 메서드를 참조하는 방식
- 값 자체가 아니라 이름, 참조, 컨테이너 등을 사용해서 대상을 참조
- C 언어의 포인터, C++ 템플릿
인다이렉션의 장점
- 로직의 공유 : 두 위치에서 호출되는 하위 메서드나 모든 하위 클래스가 공유하는 상위 클래스의 메서드 등
의도와 구현을 따로 나타냄 :
리팩토링을 할 때의 문제
- 데이터 베이스
- 인터페이스 변경
- 언제 리팩토링을 하지 말아야 하는가?
마감일이 얼마 남지 않았을 때
코드를 처음부터 다시 작성해야 할 때
리팩토링과 디자인
리팩토링은 디자인을 보완
단순한 디자인을 변경하는 것은 비용이 너무 크다
100 가지 중에서 실제 문제가 발생하는 부분은
찾아서 수정 필요