A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Session Facade and POJO Facade (which I don't see there either) sound like they differ only in that Session Facade supports remote access.
Facades are nice to provide large-grained services and hide all the details of how they work.
Application Services provide the background infrastructure for Session Fa�ades, which become simpler to implement and contain less code because they can delegate the business processing to Application Services.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by gundum hoi:
On the whole, a "Service" layer and a "Facade" layer is generally the same thing. Both has this major goal - to separate the Use Case side of things (front side, coarse-gain) with the Biz Component side of things (back side, fine-gain). This "Service"/"Facade" layer is the most front portion within the biz tier.
SERVICE � An operation offered as an interface that stands alone in the model, with no encapsulated state.
Originally posted by gundum hoi:
- The patterns "Session Facade"/"POJO Facade" and "Application Facade" is nothing more than patterns that further split the "Server"/"Facade" layer into 2 more layers : 1) the one in front being either Session or POJO Facade and 2) the 2nd one being "Application Facade" layer.
Originally posted by gundum hoi:
- "Session Facade" is there mainly to enable POJO "Application Service" classes to receive remote calls. In other words, "Session Facade" receives remote calls on behalf of "Application Service". This is because "Session Facade" classes are EJB Session Beans and "Application Service" classes are POJOs.
should not contain any business logic
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
By Stan James :
I'm not sure what that means, if for no other reason than we haven't agreed on what "business logic" is. A facade may well sequence calls to several finer grained objects. Does that count? A higher level interface has to contain some logic ... or do you see a place for one that simply passes all method calls through to some other object?
The FACADE does not change the model of the underlying system. It should be written strictly in accordance with the other system's model. Otherwise you will at best diffuse responsibility for translation into multiple objects and overload the FACADE and at worst end up creating yet another model, one that doesn't belong to the other system or your own BOUNDED CONTEXT. The FACADE belongs in the BOUNDED CONTEXT of the other system. It just presents a friendlier face specialized for your needs.
ParticipantsFacade knows which subsystem classes are responsible for a request. delegates client requests to appropriate subsystem objects. subsystem classes implement subsystem functionality. handle work assigned by the Facade object. have no knowledge of the facade; that is, they keep no references to it.
CollaborationsClients communicate with the subsystem by sending requests to Facade, which forwards them to the appropriate subsystem object(s). Although the subsystem objects perform the actual work, the facade may have to do work of its own to translate its interface to subsystem interfaces. Clients that use the facade don't have to access its subsystem objects directly.
Originally posted by gundum hoi:
My personal opinion : A "sequence of calls to several finer grained objects" IS "business logic".