C++建模實戰(zhàn)-高考錄取系統(tǒng)
招生工作的第一階段就是收集各個大學(xué)的招生計劃。但是在訪問大學(xué)的之前,首先需要解決一個問題,到哪里去找到這些大學(xué)呢,為此這里增加了一個類:EducationDepartment,應(yīng)該叫教育廳吧。我們假設(shè)它管理這學(xué)校。
這樣就通過調(diào)用EducationDepartment的getUniversity方法得到大學(xué)的清單。
也許你會說:不是有些大學(xué)是教育部直屬么?那也沒有關(guān)系:即使教育部,教育廳管理的大學(xué)都有,也無非就是多問幾次,處理的方式也不會有太大的區(qū)別。
這種判斷很重要:在變化發(fā)生時,當(dāng)前的設(shè)計能挺得住么?
接下來開始收集招生計劃。
對于每所大學(xué),AdmissionOffice從手中的EnrollmentPlan克隆一個新實例,作為模板通過requestPlan方法交給大學(xué),大學(xué)在通過setUniversity方法在計劃上記入自己的信息并設(shè)定招生人數(shù)。
為 什么要克隆呢?因為現(xiàn)實生活中的招辦應(yīng)該就是通過復(fù)?。娮游臋n就是復(fù)制)生成空計劃交給各大學(xué)填寫的。從功利的角度來看,這種方式提供了一種更換計劃類 型的方法。AdmissionOffice可以完全不了解EnrollmentPlan的細節(jié)就可以構(gòu)建出新的EnrollmentPlan來。這實際上就是Prototype設(shè)計模式!
最后一步,通過resigerPlan方法將各大學(xué)記入完了的招生計劃登記入冊,統(tǒng)一管理。
看到的只是設(shè)計的結(jié)果,但是得到這個結(jié)果的過程中考慮的點可能要遠大于你看到的。
多學(xué),多練,多問問為什么.