Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

InMoST, 2007-04-26 Java – przykładowa aplikacja Bartosz.Michalik

Podobne prezentacje


Prezentacja na temat: "InMoST, 2007-04-26 Java – przykładowa aplikacja Bartosz.Michalik"— Zapis prezentacji:

1 InMoST, 2007-04-26 Java – przykładowa aplikacja Bartosz.Michalik Bartosz.Michalik @put.poznan.pl

2 Java (2) Agenda Wstępny szkic Podejścia Bonusy ;)

3 Java (3) Dokąd zmierzamy ?

4 Java (4) Pierwsze kroki Bank Konto Bank może zawierać konta

5 Java (5) Zakodujmy to Prosta klasa banku public class Bank { private String name; private Set accounts; public Bank(...) {... } public Collection getAccounts() { return....; }

6 Java (6) Zakodujmy to Klasa konta bankowego public class Account { private double balance; private int id; private String ownerName; private String ownerSurname; private Date creationTime; public void deposit(double amount) { balance ?? } public void withdraw(double amount) { balance ?? }

7 Java (7) Jak tego użyć ? Bank bank = new Bank("ulubiony"); Account account1 = new Account("Jan", "Kowalski"); Account account2 = new Account("Adaś", "Miałczyński"); account1.deposit(2000); account1.withdraw(1000); account1.deposit(-500); account2.deposit(1000); account2.withdraw(2000); account2.deposit(-500); System.out.println("zawartość: " + account1.getBalance()); System.out.println("zawartość: " + account2.getBalance());

8 Java (8) Dyskusja Czy czegoś tutaj nie brakuje ? –Czy operacje przelania pieniędzy są bezpieczne? –Konto bez banku ?

9 Java (9) Modyfikacja Konto może być używane tylko jeżeli jest częścią jakiegoś banku Operacje wpłaty i wypłaty nie powinny być wykonywane dla wartości mniejszych od zera

10 Java (10) Punkt kontrolny Konto public void deposit(double amount) throws BankException { checkInBank(); if(amount < 0) throw new BankException("ilość mniejsza od zera"); balance += amount; } public void withdraw(double amount) throws BankException { checkInBank(); if(amount < 0) throw new BankException("ilość mniejsza od zera"); if(balance < amount) throw new BankException("nie ma śro dków na koncie"); balance -= amount; }

11 Java (11) Nowe wyzwanie Możliwość cofania operacji na koncie Logowanie operacji bankowych

12 Java (12) Budujemy dalej ?? W jaki sposób umożliwić bezpieczne transakcje pomiędzy bankami ??

13 Java (13) Ostatnie pociągnięcia

14 Java (14) Nowa klasa Transaction public class Transaction { private Account out; private Account in; private double amount;... public Transaction(Account in, Account out, double amount) { ??? } public boolean execute() {... executed = exec(in, out); return executed; } public boolean rollback() {... return exec(out, in); } private boolean exec(Account f, Account s) { if(f == s) return false; try { f.withdraw(amount); } catch (BankException e) { return false; } try { s.deposit(amount); } catch (BankException e) { f.rollbackLastOperation(); return false; } return true; }

15 Java (15) Bonus Znajdź konta o największej aktywności Znajdź konta o największych wypłatach w ciągu ostatnich N operacji Stwórz klasę klienta banku Zapisywanie do pliku


Pobierz ppt "InMoST, 2007-04-26 Java – przykładowa aplikacja Bartosz.Michalik"

Podobne prezentacje


Reklamy Google