Bonjour,

Pour créer un de mes projets j'ai adopté la même architecture que celle du tutoriel de Alexis Hassler. Donc avec les 3 paquets model, service et web, à la seule différence que dans le paquet service, j'ai bien sur ajouté d'autres fonctions lesquelles sont en liaison avec la base de données, comme par exemple pour ma classe Client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public interface ClientService {
 
    List<Client> findAll();
 
    Client findById(Long id);
 
    Client findByNumero(String numero);
 
    void save(Client client);
 
    void delete(Client client);
 
    BigDecimal getClientSequence();
 
    List<Client> findMultiCriteria(String nom, String prenom, String cin);
}
Le problème est que parfois, dans les fonctions de mes Beans managés je suis amené à faire appel à des services métiers comme c'est le cas dans cet exemple pour mon Bean "DemandeBean".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void ajoutDemande() {
 
        // -------- Récupération du client et produit relatifs à la demande
        Client client = clientService.findByNumero(this.client.getNumero());
        Produit produit = produitService.findByLibelle(this.produit
                .getLibelle());
 
        // --------- Récupération du l'utilisateur gérant la demande
        @SuppressWarnings("static-access")
        AuthentificationBean authentificationBean = (AuthentificationBean) JsfUtil
                .getInstance().getHttpSession()
                .getAttribute("authentificationBean");
        String login = authentificationBean.getLogin();
        String password = authentificationBean.getPassword();
        Utilisateur utilisateur = utilisateurService.findByLoginAndPassword(
                login, password);
 
        // ------- Insertion de la demande
        if (client != null && produit != null && utilisateur != null) {
            demande.setClient(client);
            demande.setUtilisateur(utilisateur);
            demande.setProduit(produit);
            demandeService.save(demande);
        }
    }
Je me demandais si c’était vraiment une façon propre de faire la chose ? Si ajouter une autre couche aurait été une bonne idée ?

Merci d'avance pour votre aide.