招生工作中由招生辦公室內(nèi)負(fù)責(zé)的部分雖然已經(jīng)結(jié)束,剩下的就是將錄取信息發(fā)送給各所大學(xué),然后通知考生。
向大學(xué)報告招生結(jié)果
招生辦公室在招生工作結(jié)束后,要把結(jié)果報告給各所大學(xué)。
具體步驟如下:
招生辦公室AdmissionOffice從AdmissionBoxManager處獲得參加招生的大學(xué)清單university_list。
對于清單中的每一所大學(xué),根據(jù)university_id從AdmissionManager中取得AdmissionBox。
調(diào)用AdmissionBox的createReport方法生成面向大學(xué)的招生結(jié)果報告AdmissionReport。
從教育廳EducationDepartment處獲得大學(xué)university。
調(diào)用reportResult將AdmissionReport發(fā)送給該大學(xué)。
錄取通知書發(fā)放
學(xué)校收到招生結(jié)果報告后要向被錄取的考生發(fā)放錄取通知書。
具體步驟如下:
利用getStudentList方法從AdmisiionReport處獲取已錄取考生清單。
生成錄取通知書AdmissionLetter。
利用send方法向考生發(fā)送AdmissionLetter。
如果認(rèn)真讀完了前面的文章就會知道,AdmissionBox其實只是拿著考生號。在這個流程中需要AdmissionReport了解考生信息。為了實現(xiàn)這一點,可以考慮以下兩種方法:
發(fā)送錄取通知書時通過考生號取得
錄取時在AdmissionBox中增加學(xué)生信息。
第1種方法需要大學(xué)通過考生號向有關(guān)部門查詢學(xué)生信息。這不符合實際情況。這里我們采取第2種方法,我們對Admission流程做了下圖紅框中的修改,用考生信息替代了考生號。修改的同時也避免了信息的冗余。
當(dāng)然也可以有第三種方案,錄取成功后,比如只在AdmissionBox中增加考生的特定信息而不是粗暴的將考生保存在AdmissionBox中。機會留給各位吧。
再設(shè)計時,經(jīng)常會遇到各種選擇,每一種方案都要放到流程中,綜合考慮合理性,一致性,是否有冗余,工作量如何等方面。
設(shè)計其實就是選擇,設(shè)計也是妥協(xié)。
所謂高手,就是善于選擇,善于妥協(xié)的人吧。