Cel: prosty system bankowy obsługujący różne typy kont, transakcje i karty; zasady autoryzacji i limity.
- Setup [02][04]
- Pakiety:
bank.domain,bank.service,bank.app,bank.util. [04] bank.app.Mainzmain. [03]
- Pakiety:
- Abstrakcja konta [08]
abstract class Account(nr, właściciel, saldo). [08]CheckingAccount,SavingsAccount(różne zasady naliczania opłat/odsetek). [07]
- Interfejsy [08]
domain.Transactable(deposit(),withdraw(),transferTo()). [08]domain.Exportable(historia operacji do CSV). [08]
- Karty i autoryzacje [05b][07]
domain.Card(nr, limit dzienny), podklasy:DebitCard,VirtualCard. [07]- Prosta weryfikacja limitów. [06]
- Serwisy [03]
service.AccountService,service.TransferService(przelewy, validacje). [03]
- Modyfikatory/kapsułkowanie [05]
- Prywatne pola, kontrola stanu, niemodyfikowalne widoki. [05]
- Polimorfizm [07]
- Różne typy kont implementują inaczej opłaty/odsetki. [07]
- Demo [03]
- Utwórz konta, wykonaj wpłaty/przelewy, wygeneruj wyciąg CSV. [03]
- Rozszerzenia (opcjonalnie) [07][08]
FeePolicyiInterestPolicyjako strategie. [08]abstract FraudDetectorz prostą implementacją. [07]
- GitHub [02]
- Repo,
.gitignore,README.mdz przykładowym wyciągiem. [02]
- Repo,