Wpis z mikrobloga

@Edelner: tak na szybko:
1. kwoty trzymamy w BigDecimal
2. AmountOfMoneyValidation może mieć metody statyczne, nie ma potrzeby inicjalizować jej za każdym razem jak potrzebujesz użyć
3. isAmountOfMoneyEnoughToDeposit() - niepotrzebnie taka długa nazwa. Metoda jest w klasie AmountOfMoneyValidation, widać jakie przyjmuje parametry, więc nazwa typu isEnoughToDeposit zupełnie wystarczy.

Ogólnie to jest w miarę spoko, ciśnij dalej i wołaj.
via Wykop Mobilny (Android)
  • 0
@Edelner:
1.
isEnoughToPay oraz isEnoughToDeposit powinny zwracać boolean. Is na początku implikuje że jest to wartość logiczna i ma tez dużo sensu - zamykasz fragment validacji w metodzie i zwracasz tylko wynik. Valid/ invalid lub ok / nieok.
via Wykop Mobilny (Android)
  • 0
@Edelner:
2. Nie rozumiem po co w klasie Menu tworzysz nowe obiekty np MoneyPaying i potem nie przypisujesz ich do żadnej zmiennej. Jeśli ich nie potrzebujesz to nie musisz tworzyć nowych obiektów w takim razie. Pomysl jak to zrobić inaczej
3. Tak, możesz pomyśleć o interface, dobrym kandydatem nędza właśnie klasy do deposit i windraw
@plastik: Wcześniej zwracały wartość logiczną, ale po przejściu na BigDecimal musiałem zmodyfikować te metody, ponieważ metoda compareTo nie zwraca false/true tylko -1,0,1.
MoneyPaying i MoneyDepositing to złożone procesy i po prostu używam konstruktora tych klas do uruchomienia tych procesów.
via Wykop Mobilny (Android)
  • 0
@Edelner: to nie ma znaczenia. Metoda zaczynająca się od Is powinna zwracać tylko true albo false. Chwilę później sprawdzasz to w if'ie. Przerzuc warunek z IFA do metody i gotowe.
via Wykop Mobilny (Android)
  • 0
MoneyPaying i MoneyDepositing to złożone procesy i po prostu używam konstruktora tych klas do uruchomienia tych procesów.

@Edelner: Spoko ale zobacz co robisz, tworzysz nowy obiekt, który wykonuje jakaś logikę w konstruktorze i potem ten obiekt porzucasz. To nie jest dobra praktyka. Jeśli nie przechowujesz żadnych danych na później w tym obiekcie to logikę możesz zamknąć w zwykła metoda nawet statyczna deposit() i wykonywać kod tam.