ID
- The type of the ID to be used.public interface BeanLookupFactory<ID>
BeanLookupFactory
defines the functionality which must be provided
in order to represent a factory for object creation of objects identified by
an ID String
and of the expected type (in contrast to the
TypeFactory
and the LookupFactory
which create
instances of a predefined type specified with a generic argument). Many
alternative implementations of a BeanLookupFactory
may may exist which
construct the instances their way.
Having factories that generic as we define it here, we are able to decouple
our business logic from any specific framework: Your business logic must not
know anything about how the instance are generated. It mainly just needs to
know how to use the BeanLookupFactory
. It is up to the application
"end point", i.e. a command line tool with a main-method or a web-application
to finally decide which factory to use.
Depending on the implementation used or configuration provided, the
BeanLookupFactory
may return singletons or dedicated separate instances
when queried for instances.
Modifier and Type | Method and Description |
---|---|
<T> T |
toInstance(ID aIdentifier)
This method creates / retrieves an instance of the given type identified
with the given identifier (name).
|
default <T> T |
toInstance(ID aIdentifier,
Properties aProperties)
This method creates / retrieves an instance of the given type identified
with the given identifier (name).
|
<T> T toInstance(ID aIdentifier)
T
- The type which is to be fabricated by the factory method.aIdentifier
- The name identifying the instance to be created /
retrieved.ClassCastException
- in case the fabricated type is not type
compatible with the required type T.default <T> T toInstance(ID aIdentifier, Properties aProperties)
T
- The type which is to be fabricated by the factory method.aIdentifier
- The name identifying the instance to be created /
retrieved.aProperties
- The dynamic properties which are used to configure the
desired bean.ClassCastException
- in case the fabricated type is not type
compatible with the required type T.Copyright © 2016. All rights reserved.