Question

When using the facade design pattern to structure an application's business EJB layer, why should we still use session beans for the actual business logic? Is there a specific reason for not just using plain Java classes (if container managed injection isn't required)? How is the performance of a plain Java class versus a session bean, wouldn't bypassing business session beans improve performance?

Just to sum up the two options:

  1. CLIENT -> FACADE -> SESSION BEAN
  2. CLIENT -> FACADE -> REGULAR JAVA CLASS

Why use 1 instead of 2?

Was it helpful?

Solution

The only time I can think that option 1 would make sense if if you need different transactionality from the facade - for example if you wanted to do an update outside of any transaction the facade might be part of.

Otherwise my preference would always be option 2, it's just less crap to eat processor time, go wrong, etc.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top