명확하게하기 위해, 일반화 된 것을 만들고 추상화를 구현하는 것은 완전히 다른 두 가지입니다.
예를 들어, 메모리를 복사하는 기능을 고려하십시오.
이 함수는 4 바이트가 복사되는 방식을 숨기는 추상화입니다.
int copy4Bytes (char * pSrc, char * pDest)
일반화는이 함수가 임의의 바이트 수를 복사하게합니다.
int copyBytes (char * pSrc, char * pDest, int numBytesToCopy)
추상화는 재사용하기에 적합하지만 일반화는 추상화를 더 유용한 경우로 만듭니다.
더 구체적으로 귀하의 질문과 관련하여 추상화는 코드 재사용 관점에서만 유용하지 않습니다. 종종 올바르게 수행되면 코드를 더 읽기 쉽고 유지 보수하기가 쉽습니다. 위의 예제를 사용하면 코드 copyBytes ()를 통해 스키밍하거나 한 번에 한 인덱스 씩 데이터를 이동하는 배열을 반복하는 for 루프를 읽고 이해하는 것이 더 쉬운 방법은 무엇입니까? 추상화는 코드를 다루기 쉽게 만드는 일종의 자체 문서를 제공 할 수 있습니다.
내 자신의 경험의 규칙으로, 내가 의도하는 코드를 정확히 설명하는 좋은 함수 이름을 생각해 낼 수 있다면 다시 사용할지 여부에 관계없이 함수를 작성합니다.