[디딤돌 C++] 65. 연관(ASSOCIATION) 관계

학생) 연관 관계는 명령 개체와 피명령 개체가 명확하지 않은 수평적인 관계입니다. 프로그램에서는 취약한 구조로 직접 연관 관계로 바꾸시길 권합니다.

연관 관계는 명령 개체와 피 명령 개체가 명확하지 않은 관계입니다. 프로그램에서는 연관 관계로 표현하지 말고 직접 연관 관계로 표현하는 것이 안전합니다.

연관 관계는 약사와 의사처럼 “약사와 의사는 환자 치료에 연관이 있다.”와 같이 수평적인 관계입니다. 의사는 환자 치료를 위해 어떠한 약을 처방받아 먹고 있는지 알 수 있어야 합니다. 또한 약사는 약을 조재하기 위해서는 의사의 처방이 필요합니다.

그런데 이와 같은 관계에서 프로그램을 잘못 작성하여 버그가 날 위험이 많습니다. 예를 들어 의사의 “치료하다” 기능에서 약사의 “조재하다”를 호출하게 구현하고 약사의 “조재하다” 기능에서 의사의 “치료하다”를 호출한다면 스택 오버 플로우가 발생할 것입니다.

물론 주의하여 작성한다면 버그를 피하거나 버그 발생한 것을 수정할 수 있습니다. 하지만 프로그램의 규모가 커질수록 이러한 관계로 인한 버그를 잡는 것은 구조적으로 안전한 직접 연관 관계로 표현하는 것보다 많은 비용이 들 확률이 더 높습니다.

다음은 의사와 약사 사이의 연관 관계를 표현한 코드입니다.

▷ 실행 결과


[C++ 무료 동영상 강의] 65. 연관(Association) 관계

학습에 도움이 되시면 ebook을 구입(판매가 5000원, ebook)하여 소장하시면 감사하겠습니다.