- This pattern is used when it must be decided at run time which one of several compatible classes is to be instantiated.
- For example, the abstract Collator class's getInstance() method returns a collation object that is appropriate for the default locale, as determined by java.util.Locale.getDefault():
- Like other locale-sensitive classes, you can use the static factory method, getInstance, to obtain the appropriate Collator object for a given locale.
- The following example shows how to compare two strings using the Collator for the default locale.
- Compare two strings in the default locale
- Collator myCollator = Collator.getInstance();
- if( myCollator.compare("abc", "ABC") < 0 )
- System.out.println("abc is less than ABC");
- else
- System.out.println("abc is greater than or equal to ABC");
The container is responsible for loading, activating, and in general maintaining the "life-cycle" of objects it provides. EJB have a fairly complex life-cycle. There are several kinds of EJB: Session Beans: These may be either stateful or stateless, and are primarily used to encapsulate business logic, carry out tasks on behalf of a client, and act as controllers or managers for other beans. Entity Beans: Entity beans represent persistent objects or business concepts that exist outside a specific application's lifetime. They are typically stored in a relational database. Entity beans can be developed using bean-managed persistence, which is implemented by the developer, or container-managed persistence, implemented by the container. Message-Driven Beans : Message-driven beans listen asynchronously for Java Message Service (JMS) messages from any client or component and are used for loosely coupled, typically batch processing.