|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
A ServiceManager selects Objects based on a
role. The contract is that all the Objects implement the
differing roles and there is one Object per role. If you
need to select on of many Objects 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 | ||||||||||