2009-06-17 3 views
0

bar()와 foo()의 두 가지 기능이 있습니다. 같은 상태라고 가정 내 프로그램의 실행 흐름은 다음과 같습니다모듈러 블록 디자인

입력 -> 바() -> foo는() -> 출력

현재 같은 개발 팀 내 팀 동료 foo를 만들어을() bar() 함수 안에서 호출하면 모듈성 디자인이 파괴되었습니다. 예를 들어 procedure()라고하는 래퍼 함수에서 bar() 및 foo() 호출을 모듈 식 디자인 관점에서 래핑하는 것이 더 좋지만 프로그램 스택에 추가 함수 오버 헤드를 추가하는 데 비용이 들지는 않습니까? 다음과 같이 프로 시저 함수를 캡슐화 할 계획입니다.

procedure(inputs) 
{ 
    bar(); 
    foo(); 
} 

감사의 말에 미리 감사드립니다.

답변

2

함수 호출의 오버 헤드 (특히 로컬 변수가 거의 없음)는 너무 작아 고려 가치가 없습니다. 또한, 적절한 컴파일러는 적절한 위치에서 호출을 인라인합니다. 좋은 설계에서 얻은 전반적인 효율성은 종종 작은 것들을 최적화하고 전반적인 디자인을 스파게티 엉망으로 만드는 것보다 낫다는 점에서 저는 항상 좋은 엔지니어링이 최우선 순위라고 믿었습니다.

+0

의견을 보내 주셔서 감사합니다. 그것은 또한 최선의 결정이라는 측면에서 본능이 말하는 것입니다. – stanigator

관련 문제