|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A ServiceManager
selects Object
s based on a
role. The contract is that all the Object
s implement the
differing roles and there is one Object
per role. If you
need to select on of many Object
s that implement the same
role, then you need to use a ServiceSelector
. Roles are
usually the full interface name.
A role is better understood by the analogy of a play. There are many
different roles in a script. Any actor or actress can play any given part
and you get the same results (phrases said, movements made, etc.). The exact
nuances of the performance is different.
Below is a list of things that might be considered the different roles:
ServiceManager
does not specify the methodology of
getting the Object
, merely the interface used to get it.
Therefore the ServiceManager
can be implemented with a
factory pattern, an object pool, or a simple Hashtable.
Serviceable
,
ServiceSelector
Method Summary | |
boolean |
hasService(java.lang.String key)
Check to see if a Object exists for a key. |
java.lang.Object |
lookup(java.lang.String key)
Get the Object associated with the given key. |
void |
release(java.lang.Object object)
Return the Object when you are finished with it. |
Method Detail |
public java.lang.Object lookup(java.lang.String key) throws ServiceException
Object
associated with the given key. For
instance, If the ServiceManager
had a
LoggerComponent
stored and referenced by key,
the following could be used:
try { LoggerComponent log; myComponent = (LoggerComponent) manager.lookup( LoggerComponent.ROLE ); } catch (...) { ... }
key
- The lookup key of the Object
to retrieve.
Object
value
ServiceException
- if an error occurspublic boolean hasService(java.lang.String key)
Object
exists for a key.
key
- a string identifying the key to check.
public void release(java.lang.Object object)
Object
when you are finished with it. This
allows the ServiceManager
to handle the End-Of-Life Lifecycle
events associated with the Object
. Please note, that no
Exception should be thrown at this point. This is to allow easy use of the
ServiceManager system without having to trap Exceptions on a release.
object
- The Object
we are releasing, may also be
a null
reference
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |