2009-09-16 3 views
0

Lors de l'utilisation du modèle de conception de façade pour structurer la couche EJB métier d'une application, pourquoi devrions-nous toujours utiliser des beans session pour la logique métier réelle? Existe-t-il une raison spécifique pour ne pas utiliser uniquement des classes Java simples (si l'injection gérée par conteneur n'est pas requise)? En quoi les performances d'une classe Java ordinaire par rapport à un bean de session ne contourneraient-elles pas les performances des beans de session métier?Lorsque vous utilisez des beans de session en façade, pourquoi utiliser également des beans de session métier?

Pour résumer les deux options:

  1. CLIENT -> FACADE -> SESSION BEAN
  2. CLIENT -> FACADE -> RÉGULIER JAVA CLASSE

Pourquoi utiliser 1 au lieu de 2 ?

+0

Voulez-vous dire bean entité au lieu de bean session derrière la façade? –

+0

Non, je veux dire bean session. Par exemple, la façade peut être un CalculatorFacadeBean alors que le bean session peut être un AdditionSessionBean, ou quelque chose comme ça. – Zecrates

Répondre

2

La seule fois où je peux penser que l'option 1 aurait du sens si vous avez besoin de différentes transactions de la façade - par exemple si vous vouliez faire une mise à jour en dehors de toute transaction, la façade pourrait en faire partie.

Sinon, ma préférence serait toujours l'option 2, il est un peu moins de la merde à manger du temps processeur, aller mal, etc.

+0

Bon, juste pour être sûr (je sais que j'ai formulé la question de cette façon), mais si vous deviez accéder à DAOs/PersistenceManager, vous resteriez avec l'option 1? – Zecrates

+0

@Ristretto: si vous avez initialisé le DAO correctement, alors la source de données utilisée fera partie de la même transaction que le bean session, donc j'irais avec l'option 2 dans ce cas. Seule l'option de temps 1 est logique si vous avez plusieurs opérations que vous voulez effectuer et que chacune doit être sa propre ou aucune transaction. Fondamentalement, l'option 1 est l'exception plutôt que la norme et l'option 2 est généralement la voie à suivre. Cela a-t-il du sens? –

+0

Oui, je le pense. Cela signifierait que je ne serai pas capable d'injecter le PersistenceManager, non? – Zecrates

Questions connexes