【文章內(nèi)容簡介】
+i s G oO v e rT h e T op ( )+re d u c e S t or a g e N u m b e r( )+a d d B or ro w e d N u m b e r( )+M od if y O rC re a t e R e c or d ( )+g e t B or ro w e d R e c or d ( )Re a d C a t a l o g+g e t R e a d e r( )+re a d e rU n v a ila b le E x c e p t ion ( )+G oO v e rT h e T op E x c e t p ion ( )P r o c e s s B o r r o w H a n d l e r+e n t e rR e a d e rI D ( )+b or ro w B ook ( )+g e t R e a d e r( )+g e t B ook ( )+e n t e rB ook I d ( )B o o k C a t a l o g+g e t B ook ( )+b ook U n v a lia b le E x c e p t ion ( )B o o k+n a m e+a u t h or+I D+k e y V a lu e+g e t B ook ( )+i s B ook I n S t or a g e ( )re a d e r*1B o o k B o r r o w e d Re c o r d+b or ro w T im e+re t u rn T im e+B ook B or ro w e d R e c or d ( )+a d d R e c or d ( )b ook*1b ook C a t a log11re a d e rC a t a log*1 題 中的類圖,用 UML 類圖描述讀者、圖書、借閱信息的數(shù)據(jù)模型。 Re a d e rt a b le +n a m e : v a rc h a r( 10)+a u t h o r: v a rc h a r( 10)P K +I D : c h a r( 10)+k e y V a lu e : v a rc h a r( 30)B o o kt a b le P K +i d : c h a r( 10)+n a m e : v a rc h a r( 10)B o o k B o r r o w e d Re c o r dt a b le F K +re a d e r_ I D : v a rc h a r( 10)P K +I D : v a rc h a r( 10)F K +b o o k _I D : v a rc h a r( 10)+b o rr o w T im e : D a t e+re t u rn T im e : D a t e 適 配器模式和其解決方案, 并舉例。 問題:如何解決不相容的接口問題,或者如何為具有不同接口的類似構(gòu)件提供穩(wěn)定的接口 ? 解決方案:通過中介適配器對象,將構(gòu)件的原來的接口轉(zhuǎn)換為其它接口 如 POS 系統(tǒng)中,為解決多種稅金的計算問題,采用多態(tài)模式加適配器模式,為每一種稅金都定義一個適配器類,并讓他們實(shí)現(xiàn)相同的接口。 第二題: 餐館系統(tǒng) 1. 非正式的需求 要開發(fā)的意圖是,通過改進(jìn)顧客 預(yù)訂和分配餐桌 的過程,支持一家餐館的日常經(jīng)營。 現(xiàn)狀: 這家餐館當(dāng)前采用一個手工預(yù)約系統(tǒng),使用的是保存在一個大文件夾中的手工預(yù)約單。 手工預(yù)約單的 每一行對應(yīng)餐館中一張 特定的餐桌 。每個預(yù)約中記錄有 “餐具”的數(shù)目 ,或者預(yù)期進(jìn)餐者的數(shù)目,這樣就能夠分配一個大小適當(dāng)?shù)牟妥?。這家餐館在晚間提供三次餐點(diǎn),稱為“簡餐”、“正餐”和“夜點(diǎn)”時段。但這些時段無需嚴(yán)格遵守,可以預(yù)約跨多個時段的時間。最后,每個預(yù)約中要記錄 聯(lián)系人的姓名和電話 。 為了記錄各種事情,要在預(yù)約單上加一個 注釋 。當(dāng)一行用餐者到來并在他們的餐桌就餐時,就劃掉相應(yīng)的預(yù)約登記。如果他們就座的不是他們預(yù)約的餐桌,就畫一個箭頭從最初預(yù)約的餐桌指向新的餐桌。如果顧客打電話取消預(yù)約,并不能從表中真正地擦除,而是做一個預(yù)約已經(jīng)取消的注 釋。其他的信息,比如到什么時候餐桌必需空出來,也可以寫在預(yù)約單上。 如果有空閑的餐桌,用餐者當(dāng)然也可以不提前預(yù)約就進(jìn)餐館用餐,這就稱為“ 未預(yù)約的顧客 ( walkin)”,并在預(yù)約單中作為預(yù)約登記以表示餐桌的占用,但不記錄顧客的姓名或電話。 需求: 開發(fā)一個預(yù)約單的自動化版本。新系統(tǒng)應(yīng)該和現(xiàn)有的預(yù)約單顯示同樣的信息,并且有大致相同的格式,使餐館員工易于轉(zhuǎn)換到新系統(tǒng)。當(dāng) 記錄了新的預(yù)約 時,或者對已有的預(yù)約進(jìn)行 修改 時,應(yīng)該立即更新顯示,使餐館員工在工作時總能使用可獲得的最新信息。 系統(tǒng)必需易于記錄餐館營業(yè)時發(fā)生的有 意義的事情,例如顧客的 到來 。系統(tǒng)的操作應(yīng)當(dāng)盡可能是直接操作屏