Aplikacja Webowa Spring - Duża ilość modeli

0

Hej

Tworzę aplikację w Springu

Mam warstwę Serwisów w której dokonuje obliczeń i zwracam zmienne które są przekazywane do Controllera

Mój problem polega na tym że mam dużo tych zmiennych i chciałbym zmniejszyć ilość kodu w Controlerze

teraz to wygląda tak:

model.addAttribute("zmienna1", serwis.obliczZmienna1);
model.addAttribute("zmienna2", serwis.obliczZmienna2);
model.addAttribute("zmienna3", serwis.obliczZmienna3);
model.addAttribute("zmienna4", serwis.obliczZmienna4);
.............
model.addAttribute("zmienna10", serwis.obliczZmienna10);

Jak zmniejszyć ilość powtarzanego kodu w Controlerze ?

0
Brunatny Pomidor napisał(a):

Hej

Tworzę aplikację w Springu

Mam warstwę Serwisów w której dokonuje obliczeń i zwracam zmienne które są przekazywane do Controllera

Mój problem polega na tym że mam dużo tych zmiennych i chciałbym zmniejszyć ilość kodu w Controlerze

teraz to wygląda tak:

model.addAttribute("zmienna1", serwis.obliczZmienna1);
model.addAttribute("zmienna2", serwis.obliczZmienna2);
model.addAttribute("zmienna3", serwis.obliczZmienna3);
model.addAttribute("zmienna4", serwis.obliczZmienna4);
.............
model.addAttribute("zmienna10", serwis.obliczZmienna10);

Jak zmniejszyć ilość powtarzanego kodu w Controlerze poprzez sprytna redukcje model.add ?

1

Ty tak poważnie? A czemu nie zrobisz sobie w takim razie klasy która agreguje te parametry i serwisu który wywoła te wszystkie obliczX i zwróci ci ten agregat?

0
Shalom napisał(a):

Ty tak poważnie? A czemu nie zrobisz sobie w takim razie klasy która agreguje te parametry i serwisu który wywoła te wszystkie obliczX i zwróci ci ten agregat?

mógłbyś zademonstrować na przykładzie?

0

Napisz czego nie rozumiesz z tego co napisał Shalom. Lepszym sposobem na naukę będzie zrozumienie problemu, tak byś mógł to rozwiązanie wykorzystać w przyszłości niż kopiowanie z gotowca.

0

o_O

class AggregateService{
    public AggregateValue get(){
        return new AggregateValue(service1.calculate1(), service2.calculate2(), service3.calculate3(),...);
    }
}

i voila, w kontrolerze teraz masz tylko aggregateService.get()

0
Shalom napisał(a):

o_O

class AggregateService{
    public AggregateValue get(){
        return new AggregateValue(service1.calculate1(), service2.calculate2(), service3.calculate3(),...);
    }
}

i voila, w kontrolerze teraz masz tylko aggregateService.get()

Wszystko ok , a

Zrobiłem troszeczkę inaczej w serwisie Stworzyłem metodę która zwraca Map<String,Double>
do każdej obliczonej zmiennej Double przypisuję nazwę String, dodaję do mapy.
Następnie w Controllerze

model.addAllAttributes(service.getMap);

Wystarczy poczytać troszkę dokumentacji , ale wybaczcie mi uczę się :)

Działać działa , co Wy na to?
Czy sposób Shaloma jest korzystniejszy?

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