Architecture Overview
首先,本次大作业的目的是锻炼同学们写工程的能力。无论是高中的OI系列竞赛,还是大学ACM/ICPC比赛,甚至是现在的机考,都锻炼的是同学们写单个文件的能力。而对于多个类的继承,互相调用,训练得比较少。
助教为大家设计好了框架,你可以选择是否使用。如果不用我们的框架,可以直接跳过这些,去看CLI Standard和Testing and Grading
其次,我们需要了解一下该project的结构。 project包括被管理的对象,管理者。 其中被管理的对象分为四类:
1. Kind
同一类书有相同的书名,ISBN号,作者等信息。不同类书ISBN号必然不同。注意:Kind类只是书的类别,并不指代特定的一本书。
2. Book
图书馆中同一类书可能会有若干本,这里的Book类指代特定的一本书,同时它还将记录该本书相关的读者信息等等。
3. Admin
图书馆中的管理员,虽然说是管理员,但是从project的角度来看,依然是被管理对象。
4. Reader
图书馆的广大用户,用户分多个类别。
- 在该project中,管理者为Manager design Pattern,它负责从外部文件读入被管理对象信息,并存入内存中;将内存中的被管理对象信息写入外部文件中。 需要说明的是,每个被管理对象都对应一个管理者,例如Book的管理者为BookManager。