如何設計乙個 atm machine
如何設計乙個atm machine?首先,這是一道real life object的題目, 類似題型(vending machine)
一、clarify
assumption: input 是卡, output 是現金
assumption: 只能是debit card
assumption: 只能是20美元的倍數
assumption: atm永遠有足夠的餘額 (bonus: 這裡可以考慮如果不夠的話應該怎麼處理)
assumption: 一張卡可能有多個賬戶 (bonus: 這個不太容易想到, 沒想到也沒關係,我們可以先按照乙個account來做)二、core objects
三、use cases
四、classes
1. atm machine
2. session
3. account
五、correctness
1. 增加各式的exceptions
2. 對於atm機,有許多種design pattern可以適用,其中比較合適的就有我們《ood物件導向專題》課上講過的state design pattern, 大家可以自己思考有哪些合適的states。
六、總結
atm machine作為一道real life object的題目,做法和我們上課講過的解法大同小異,其中值得注意的三點分別是對session的使用;可能出現各式各樣的exception; 以及一張卡對應多個
account的business logic。
ood 物件導向專題講解(免費報名)
1. 什麼是物件導向設計(ood, object oriented design)美西 2月11日 週日 10:00-12:00 a.m(北京 2月12日 週日 02:00-06:00 a.m)2. ood 面試中常見面試題總結、分類
3. 設計模式講解 design pattern - strategy
4. 高頻ood面試題講解 - 電梯設計 elevator design
報名**:
乙個面試題
題目是 假設乙個 搜尋引擎收錄了2 24首歌曲,並記錄了可收聽這些歌曲的2 30條url,但每首歌的url不超過2 10個。系統會定期檢查這些url,如果乙個url不可用則不出現在搜尋結果中。現在歌曲名和url分別通過整型的song id和url id唯一確定。對該系統有如下需求 1 通過song ...
乙個面試題
在不超過最右邊的數量的情況下任意組合,要求加起來不超過20280這個數字,但達成最接近的情況,現有一種方法為 1290 4 2990 5,差170,有沒有更接近20280的答案 資料如下 4900 13790 22990 5 意思是不能超過5次,但可以使用1次,2次,3次,4次,5次。2390 31...
乙個面試題
res fromkeys name password age print res print res print id res name id res password res name 666 print res 輸出 57496360 57496360 fromkeys 建立字典時,字典中所有的...