Projekt Spring MVC unikanie powtórzeń przy zmiennych w serwisie

0

Cześć
Drodzy koledzy z forum :)

Zastanawiam się jak uniknąć powtórzeń tworzenia tych samych zmiennych w różnych metodach:
Na internecie jest trochę rozwiązań ale, jak wywnioskować które są najbardziej poprawne:)

class Kredyt

private int wartoscKredytu;
private double oprocentowanie;
private int okresKredytu;
....................................
gettery i settery
class KredytService

double obliczRatyMalejace(Kredyt kredyt){
int wartoscKredytu = kredyt.getWartoscKredytu;
double orpocentowanie = kredyt.getOprocentowanie;
int okresKredytu = kredyt.getOkresKredytu;
................................
obliczenia
}

double oblicz RatyRowne(Kredyt kredyt){
int wartoscKredytu = kredyt.getWartoscKredytu;
double orpocentowanie = kredyt.getOprocentowanie;
int okresKredytu = kredyt.getOkresKredytu;
..............................
obliczenia
}

W każdej metodzie tworze te same zmienne które wykorzystuje do obliczania .. używanie bezpośredniego odwołania kredyt.get... według mnie jest mało czytelne przy obliczeniach dlatego tworze zmienne , z drugiej strony to też słabo wygląda :)
Jak poprawnie politycznie powinno się zmniejszyć ilość powtórzeń.

0

Jeśli to jest tak mocno związane z kredytem, czemu nie zrobisz tego w Kredycie?

class Kredyt {

    private int(sic!) wartoscKredytu;
    private double oprocentowanie;
    private int okresKredytu;
    private Raty ratyRowne;
    private Raty ratyMalejace;
....................................
    Kredyt(int wartoscKredytu, double oprocentowanie, int okresKredytu) {
        ratyRowne = obliczRatyRowne(...);
        ratyMalejace = obliczRatyMalejace(...);
    }
....................................
    gettery i settery
}
0

Nazywanie zmiennych tak samo w różnych miejscach jest jak najbardziej ok. A to czy wyciągać zmienną i dalej ją przekazywać do metody

Kredyt kredyt = new Kredyt();
obliczWartoscKredytu(kredyt);

czy przekazać ją bezpośrednio do metody

obliczWartoscKredytu(kredyt.getKredyt())

powinno zależeć od tego która wersja jest czytelniejsza. Jeżeli wykonujesz jakieś skomplikowane operacje to lepiej wyciągnąć, natomiast jak metoda jest krótka to możesz ją przekazać bezpośrednio.

0
shagrin napisał(a):

Jeśli to jest tak mocno związane z kredytem, czemu nie zrobisz tego w Kredycie?

class Kredyt {

    private int(sic!) wartoscKredytu;
    private double oprocentowanie;
    private int okresKredytu;
    private Raty ratyRowne;
    private Raty ratyMalejace;
....................................
    Kredyt(int wartoscKredytu, double oprocentowanie, int okresKredytu) {
        ratyRowne = obliczRatyRowne(...);
        ratyMalejace = obliczRatyMalejace(...);
    }
....................................
    gettery i settery
}

Z tego co wyczytałem według wzorca MVC takie obliczenia robie w warstwie serwisów , wczesniej ten kredyt jest pobierany z bazy danych , wolał bym uniknąć tworzenia logiki biznesowej w kilku miejscach. Być może jestem w błędzie .. nie znam najlepszych praktyk :)

0
Brunatny Pomidor napisał(a):

Z tego co wyczytałem według wzorca MVC takie obliczenia robie w warstwie serwisów , wczesniej ten kredyt jest pobierany z bazy danych , wolał bym uniknąć tworzenia logiki biznesowej w kilku miejscach. Być może jestem w błędzie .. nie znam najlepszych praktyk :)

Z tego co się orientuję, to z bazy danych masz obiekt DAO, później pracujesz na obiekcie domenowym, a wynikiem zwracanym np do frontendu jest DTO

1 użytkowników online, w tym zalogowanych: 0, gości: 1