Domanda

Mentre sto solo imparando tutti i frutti di Java e tutto ciò che volevo scoprire una cosa che volava nella mia mente per un po 'di tempo. Il codice Bellow è un rapido esempio di due metodi in due classi diverse. Il primo è ovviamente un controller per qualche pagina e l'altro fa parte del servizio.

@RequestMapping("/something)
public void doSomething() {
    ...

    SomeEntity example = new SomeEntity();
    example.setAccount(account);
    example.setSmthElse(else);
    example.setDate(new Date());
    example.setSomething(something);

    someService.saveSomeEntity(example);
}

... 

public void saveSomeEntity(SomeEntity object) {
    someEntityDAO.save(object);
}

Quindi la mia domanda qui è la creazione della nuova entità SomeEntity e l'impostazione delle sue proprietà deve essere eseguita nella parte del livello di presentazione come sopra o dovrebbe essere eseguita in qualche modo nel saveSomeEntity Metodo passando tutti i parametri ad esso?

È stato utile?

Soluzione

Il controller non è il livello di presentazione. È la C in MVC. Lo strato di persistenza dovrebbe preoccuparsi solo di persistenza, non di creazione di oggetti modello. Il codice sopra è ok. Alcuni creerebbero gli oggetti nel servizio, non nel controller, ma i parametri sono prontamente disponibili nel controller, quindi è accettabile.

Altri suggerimenti

Sì, l'entità può essere creata a qualsiasi livello.

Alcune persone preferiscono DTOS (oggetti separati con la stessa struttura) che vengono quindi tradotti nelle entità.

Evita solo di scrivere il codice Java nei JSP. Istanzia gli oggetti nel controller o lascialo ad un meccanismo di legame.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top