응용 - 도서관 프로그램

도서관 만들기

image

Role이라는 enum을 정의해보자.

  • [코드] 역할 enum

User라는 추상 클래스를 정의해보자. User 클래스는 name, age라는 인자를 받고 getRole이라는 추상 함수를 포함한다.

  • [코드] 유저 추상 클래스

Member라는 클래스를 정의해보자. Member는 User를 상속받는다.

  • [코드] 멤버 클래스

마찬가지로 Librarian라는 클래스를 정의해보자.

  • [코드] 사서 클래스

이제 Book이라는 클래스를 정의해보자. 책은 이름, 저자, 출판일로 구성이 된다.

  • [코드] 책 클래스

RentManager라는 인터페이스를 정의해볼게요. 이 친구는 도서관이 꼭 갖추어야 할 기능을 정의한 명세서입니다.

  • [코드] RentManager 인터페이스

이제, RentManager를 구현하는 Library 클래스를 만들어보자. - getBooks 함수는 books를 깊은 복사해서 던져주자. - 외부에서 books를 수정하는 것을 방지하기 위함 - addBook, removeBook는 사서만 호출할 수 있게 해주자. - rentBook는 유저만 호출 할 수 있게 해준다. - rentBook에서는 다른 책을 대여한 유저는 책을 대여할 수 없어야 한다. - returnBook에서는 책을 빌린 사람들만 반납할 수 있게 해준다.

  • [코드] 도서관 클래스 구현

도서관 프로그램 코딩 - 테스트 코드를 포함한 전체 코드

Last updated