반응형

설계한 내용 프로젝트에 옮기기 4

[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 잠자기

7.3 설계한 내용 프로젝트에 옮기기 초점 이동 [그림] 잠자기 시퀀스 다이어그램 이번에는 기숙사에 초점이 온 상태에서 잠자기 메뉴를 선택했을 때에 대하여 시퀀스를 보며 필요한 멤버를 추가해 봅시다. 캠퍼스 생활에서 기숙사 개체에 잠자기 메뉴를 선택하였다는 것은 DoIt 메서드에 인자로 잠자기를 선택하였음을 전달하게 약속되어 있으니 Place에 추상 메서드로 캡슐화되어 있는 것을 기숙사에서 재정의하면 될 것입니다. 그리고 학생에게 잠을 자게 해야 하므로 Student 클래스에 Sleep 메서드를 추가하고 수동적인 학생에게는 잠꼬대하게 해야 하므로 PStudent 클래스에 TalkingInSleep 메서드를 추가합시다. class Student { ... 중략 ... internal void Sleep()..

[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 발표 수업

7.3 설계한 내용 프로젝트에 옮기기 발표 수업 [그림] 발표 수업 시퀀스 다이어그램 이번에는 발표 수업에 관한 시퀀스 다이어그램을 보면 필요한 멤버를 추가해 봅시다. 발표 수업에서 학생들 정보를 출력하는 부분은 이미 추가하였기 때문에 별다른 작업을 할 필요가 없습니다. 발표할 학생을 선택하였을 때 해당 학생에게 발표를 수행하게 하려면 캠퍼스 생활에서 강의실 개체에 해당 행위와 선택한 학생 정보를 인자로 전달하는 메서드 DoIt을 추가해야겠지요. 이 메서드 또한 다른 시퀀스 다이어그램들을 보면 각 장소의 기반 클래스에서 추상 메서드로 제공하고 각 장소에서 특정 학생에게 수행할 작업을 약속하여 이를 수행하는 부분을 재정의하세요. class LectureRoom:Place { ... 중략 ... intern..

[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 초점 이동

7.3 설계한 내용 프로젝트에 옮기기 초점 이동 [그림] 초점 이동 시퀀스 다이어그램 이번에는 초점 이동에 대한 시퀀스 다이어그램을 보면서 멤버를 추가해 봅시다. 초점 이동에 대한 시퀀스 다이어그램에서는 각 장소에 따라 다르게 수행되는 부분은 약속하지 않고 공통적인 부분만 약속하였습니다. 초점 이동에 관한 시퀀스를 보시면 각 장소로 초점이 이동되고 나서 다시 캠퍼스 생활로 초점이 돌아오면 어떻게 학생들을 복귀시킬 것인지에 대한 시퀀스가 약속되어 있습니다. 먼저, 캠퍼스 생활에서 해당 장소에 학생의 수를 얻어오는 부분이 있고 특정 학생의 정보를 얻어오는 부분이 있습니다. 그리고 사용자에 의해 선택된 학생 번호에 해당하는 학생을 얻어오는 메서드가 약속되어 있네요. 그리고 캠퍼스 생활에서 캠퍼스 개체에게 복귀..

[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 클래스 추가

7.3 설계한 내용 프로젝트에 옮기기 클래스 추가 이제는 앞에서 설계한 내용을 기반으로 프로젝트에 필요한 클래스를 추가하고 필요한 멤버를 추가해 보기로 합시다. 먼저, 설계 단계의 클래스 다이어그램에 해당하는 클래스를 프로젝트에 추가하시고 일반화 관계에 있으면 상속에 대해 표현하시기 바랍니다. 캠퍼스 생활(CampusLife)은 단일체로 정의하기로 하였으니 이에 대해 표현을 합시다. 단일체를 표현하는 방법은 캡슐화의 생성자 항목에서 설명했으므로 별도의 설명은 하지 않겠습니다. ▶ CampusLife.cs Class Campus { internal Campus() //기본 생성자 { throw new NotImplementedException(); } } 초기화 단계에서 학생 생성하는 시퀀스 다이어그램을 ..

반응형