언어 자료구조 알고리즘/Escort C#

[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 판서 강의

언제나휴일 2016. 5. 3. 11:26
반응형

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

 

판서 강의



판서 강의 시퀀스 다이어그램

[그림] 판서 강의 시퀀스 다이어그램


 이번에는 초점이 강의실로 이동되어 판서 강의하는 부분을 시퀀스 다이어그램을 보며 필요한 멤버를 추가해 봅시다. 캠퍼스 생활에서는 강의실에 판서 강의하라는 것을 DoIt 메서드에 해당 행위를 인자로 전달하게 되어 있네요. 이 부분은 기능 확장을 쉽게 하기 위해 각 장소에 따라 수행할 수 있는 일의 종류를 정의하고 입력 인자로 해당 일의 종류를 전달받아 수행하게 한 것입니다. 따라서 다른 시퀀스 다이어그램까지 살펴보면 DoIt 메서드는 각 장소의 기반 클래스인 Place에 추상 메서드로 약속하고 각 장소에서는 재정의하면 된다는 것을 생각할 수 있을 것입니다.

 


abstract class Place

{

    ....중략...

    internal abstract void DoIt(int cmd);

}

 

class LectureRoom:Place

{

    internal LectureRoom()

    {

        throw new NotImplementedException();

    }

    internal override void DoIt(int cmd)

    {

        throw new NotImplementedException();

    }

}

  

 그리고 강의실에서는 모든 학생에게 강의를 듣게 하고 도전적인 학생일 경우 질문을 하게 되어 있네요. 이에 학생 클래스에는 ListenLecture 멤버 메서드를 추가하고 CStudent에는 Question 메서드를 추가합시다.

 

class Student

{

    ... 중략 ...

    internal void ListenLecture()

    {

       throw new NotImplementedException();

    }

}

 

class CStudent:Student

{

    ... 중략 ...

    internal void Question()

    {

        throw new NotImplementedException();

    }

}

 너와 나의 연결고리 "공감"

반응형