![](/api/v2/epubs/9788968481659/files/bg98.png)
지금 여기예요
� 151
객체를 지향하라!
마이크, 새로운 아이디어를 떠올리다
인터뷰는 성공적으로 끝났습니다. 하지만 아침에
교통 정체로 난리를 치고 난 마이크는 내비게이터
를 향상시킬 아이디어를 궁리해 냈습니다.
Navigator
SetDestination()
ModifyRouteToAvoid()
ModifyRouteToInclude()
GetRoute()
GetTimeToDestination()
TotalDistance()
Navigator2
SetDestination()
ModifyRouteToAvoid()
ModifyRouteToInclude()
GetRoute()
GetTimeToDestination()
TotalDistance()
Navigator3
SetDestination()
ModifyRouteToAvoid()
ModifyRouteToInclude()
GetRoute()
GetTimeToDestination()
TotalDistance()
Navigator 클래스를 여러 개 만들 수도 있을 겁니다.
Navigator 클래스 코드를 여러 개 복사해서 클래스를 여러 개 만들 수도 있을 겁니다.
그러면 프로그램에 세 개의 서로 다른 경로를 저장할 수 있겠죠.
맞습니다. 똑같은 코드를 세 군데 복사해 놓으면 관리하기가 정말 지저분해지죠.
문제를 해결하다 보면 한 가지를 여러 번 쓸 수 있어야 하는 경우가 빈번하게 발생합니다. 이 경우
에는 여러 경로가 필요합니다. 경로뿐만 아니라 사람, 외계인, 음악 파일 등 어떤 것이든 여러 개
가 필요한 상황은 무진장 많습니다. 이렇게 뭔가 같은 것이 여러 개 필요한 프로그램들에는 모두 공
통점이 한 가지 있습니다. 같은 종류에 속하는 것들을 몇 개를 처리하든 모두 같은 식으로 처리해
야 한다는 점이죠.
이 상자는 클래스 다이어그램(Class Diagram)
입니다. 여기에는 클래스에 들어 있는 모든
메서드들이 목록 형태로 나열되어 있어서 그
클래스에서 무슨 일을 하는지 한 눈에 파악할 수
있습니다.
Get Head First C# (개정3판): 상상을 초월하는 객체지향 C# 학습법 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.