Version: 5. félév
4. Gyakorlat
#
Órai feladatsor#
AccountKészítsd el az Account osztályt!
Adattagjai:
- owner (a tulaj neve)
- balance (a jelenleg rajta található összeg / tartozás)
- log (időrendi lista, ami tartalmazza a time stamp-et, a változást és a változás utáni összeget)
Műveletei:
- transfer: a megadott összeggel változtatja a balance értékét, a változást feljegyzi a logba
- maxIncome: megkeresi a legnagyobb költséget
tedd az objektumot szálbiztossá
#
TransferValidatorKészítsd el a TransferValidator osztályt! Műveletei:
- isValid: három adatot kap: forrás számla, cél számla, összeg. Egy művelet akkor érvényes, ha mindkét számla összege pozitív a tranzakció utáni
Egyszerre csak 3 validáció történhet a rendszerben (módosítsd az Account osztályt a szükséges módon)
#
TransferValidatorModosítsd a TransferValidator -t úgy, hogyha nem sikerül 3 s-on belül ellenőriznie a műveletet, akkor dobjon TimeoutException-t.
#
BankKészíts Bank osztályt, aki szálbiztos. Lekérdező műveleti korlátlan számban hívhatók, módosító műveletei kizárásban futnak egymással.
Műveletei:
- getBalance; paramétere a tulajdoson neve (olvasó művelet)
- createBalance; paramétere a tulajdonos neve és a nyitóösszeg. Egy tulajnak csak egy számlája lehet. Új számlát nyit. (író művelet)
- closeBalance; paramétere a tulajdonos neve, megszűnteti a számlát (író művelet)
- transfer; paraméterei a küldő tulajdonos, a fogadó tulajdonos és az összeg. Csak érvényes műveleteket enged