리팩토링 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. 리팩토링 시리즈 [C++] 누구나 쉽게, 리팩토링(클린코드)-① 순수가상함수/추상클래스 [C++] 누구나 쉽게, 리팩토링(클린코드)-② 인터페이스(이번글) [C++] 누구나 쉽게, 리팩토링(클린코드)-③ 캐스팅(static·reinterpret·const·dynamic_cast)/타입체크 기능 이번시간에는 리팩토링을 진행하면서 인터페이스까지 함..
2. 인터페이스 이번에는 핸드폰 예제를 이용합니다! 쌈쏭의 자랑 애니콜(Anycall) 핸드폰의 통화(call)기능을 구현합니다.사람(Person)은 use_phone()을 통해 이 기능을 사용합니다. 싸이언(Cyon) 핸드폰을 하나 더 구매했다고 합시다.싸이언은 통화 기능이 애니콜과 달리 send 함수를 사용하네요.역시 통화하기 위해 Person 클래스에 싸이언용 use_phone()을 구현합니다. 애니콜과 싸이언은 다른 타입으로, 다른 타입의 포인터끼리는 호환이 되지 않기 때문에void use_phone(Cyon *p, const char* n) { p -> send(n); }을 하나 더 만들어주어야 하는 것이죠. 메인함수에는int main() { Person p; Anycall a; p.use_ph..