Où dois-je créer une nouvelle entité - dans la couche de présentation ou non?

StackOverflow https://stackoverflow.com/questions/6387236

  •  29-10-2019
  •  | 
  •  

Question

Comme j'apprends juste tous les fruits de Java et tout ce que je voulais découvrir une chose qui volait dans mon esprit pendant un certain temps. Le code ci-dessous est un exemple rapide de deux méthodes dans deux classes différentes. Le premier est évidemment un contrôleur pour une page et l'autre fait partie du service.

@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);
}

Donc ma question ici est la création de la nouvelle entité SomeEntity et le réglage de ses propriétés est effectué dans la partie de la couche de présentation comme ci-dessus ou devrait-il être fait d'une manière ou d'une autre dans le saveSomeEntity Méthode en y passant tous les paramètres?

Était-ce utile?

La solution

Le contrôleur n'est pas la couche de présentation. C'est le C dans MVC. La couche de persistance ne doit être concernée que par la persistance, et non sur la création d'objets de modèle. Le code ci-dessus est ok. Certains créeraient les objets du service, non dans le contrôleur, mais les paramètres sont facilement disponibles dans le contrôleur, donc à mon humble avis.

Autres conseils

Oui, l'entité peut être créée à n'importe quelle couche.

Certaines personnes préfèrent les DTO (objets séparés par la même structure) qui sont ensuite traduits par les entités.

Évitez simplement d'écrire du code Java dans le JSPS. Instanciez les objets du contrôleur, ou laissez cela à un mécanisme de liaison.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top