OOD 高頻面試題 如何設計乙個ATM

2021-10-01 16:06:31 字數 1249 閱讀 7774

如何設計乙個 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. ood 面試中常見面試題總結、分類

3. 設計模式講解 design pattern - strategy

4. 高頻ood面試題講解 - 電梯設計 elevator design

美西 2月11日 週日 10:00-12:00 a.m(北京 2月12日 週日 02:00-06:00 a.m)

報名**:

乙個面試題

題目是 假設乙個 搜尋引擎收錄了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 建立字典時,字典中所有的...