SUM-TWO-bank, Magisterka, Modelowanie i analiza systemów informatycznych 1, lab1 - pliki
[ Pobierz całość w formacie PDF ]
Zadanie dla SUM TWOBankAutor: Bartosz WalterI. Środowisko EclipseII. Kolekcje, kompozycja, asocjacjaBank zarządza grupą rachunków. Każdy rachunek posiada jednego lub więcej właścicieli,stan rachunku. Na rachunek można pieniądze wpłacać lub wypłacać.Tworzenie rachunku polega na przekazaniu nazwiska klienta-właściciela rachunku,instancji klienta właściciela lub listy właścicieli.Numer rachunku jest generowany jako kolejny numer w bankuOprocentowanie - jako StateOprocentowanie jest tworzone jako Factory MethodIII. Testowanieprzetestować obliczanie odsetekprzetestować klasę Money - na dodawanieprzetestować klasę AccountIV. Wzorce projektowe, refaktoryzacja1. Należy zaimplementować klasę Money, która będzie reprezentowała pieniądze.Klasa Money jest obiektem-wartością (value object), tzn. jej wartość jest ustalana wyłącznie w konstruktorachKlasa Money powinna przechowywać wartość pieniędzy jako liczbę groszy (czyli11 PLN 23 gr będzie wewnętrznie reprezentowane jako 1123), i udostępniać metody:+ dodawania innej wartości pieniężnej+ odejmowania innej wartości pieniężnej+ mnożenia przez skalar (np. wysokość oprocentowania)+ toString()Następnie należy korzystać z tej klasy w każdym kontekście, w którym pojawiają się wartości pieniężne2. Należy zmienić metody wpłata, wypłata, przelew, naliczenie odsetek i zmiana oprocentowania na implementacje wzorca Command:public interface Command {public void execute();public String getDescription();}public class Wplata implements Command {private Acount acc = null;private Money amount = null;public Wplata(Account acc, Money amount) {this.acc = acc;this.amount = amount;}public void execute() throws BankingException {acc.dodaj(amount);acc.log("Wplata " + amount);}}public class Przelew implements Command {private Account src, dst;private Money;public Przelew(Account src, Account dst, Money amount) {this.src = src;this.dst = dst;this.amount = amount;}public void execute() throws BankingException {src.odejmij(amount);dst.dodaj(amount);src.log("Przelew kwoty " + amount + " na rachunek " + dst.getId());dst.log("Przelew kwoty " + amount + " z rachunku " + src.getId());}}
[ Pobierz całość w formacie PDF ]