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.
org.apache.avalon.framework.service.Serviceable , org.apache.avalon.framework.service.ServiceSelector
| Modifier and Type | Method and Description |
|---|---|
| public boolean | Returns: True if the object exists, False if it does not.a string identifying the key to check. key)Check to see if a |
| public Object | |
| public void |
| hasService | back to summary |
|---|---|
| public boolean hasService(String key) Check to see if a
| |
| lookup | back to summary |
|---|---|
| public Object lookup(String key) throws ServiceException Get the
try
{
LoggerComponent log;
myComponent = (LoggerComponent) manager.lookup( LoggerComponent.ROLE );
}
catch (...)
{
...
}
| |
| release | back to summary |
|---|---|
| public void release(Object object) Return the
| |