프로그래밍/C++

인다이렉션

이재만박사 2020. 11. 19. 15:36

인다이렉션의 정의


 - 어떤 기능을 수행하는 코드가 직접 들어 있는 것이 아니라 기능 별로 분리되어 있는 다른 메서드를 참조하는 방식


- 값 자체가 아니라 이름, 참조, 컨테이너 등을 사용해서 대상을 참조


- C 언어의 포인터, C++ 템플릿


인다이렉션의 장점


 - 로직의 공유 : 두 위치에서 호출되는 하위 메서드나 모든 하위 클래스가 공유하는 상위 클래스의 메서드 등


의도와 구현을 따로 나타냄 : 






리팩토링을 할 때의 문제


 - 데이터 베이스


 - 인터페이스 변경


 - 언제 리팩토링을 하지 말아야 하는가?

 

 마감일이 얼마 남지 않았을 때

 

 코드를 처음부터 다시 작성해야 할 때 





리팩토링과 디자인


리팩토링은 디자인을 보완


단순한 디자인을 변경하는 것은 비용이 너무 크다



100 가지 중에서 실제 문제가 발생하는 부분은 


찾아서 수정 필요