- 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 pattern is an organised way of solving some specific class of problems. These patterns come in to the picture at analysis and high-level-design phase. The first step of applying one pattern to the code base is first to understand the find the vector of change in the code base. Next step is to isolate the things that are subject to change form the things that are not. That is adding a layer of abstraction to the code. The goal of design patterns is isolating the changes in your code. Understand Inheritance and Composition as a solution to a specific class of problems. Inheritance : - It allows you to express differences in behavior (that's the thing that changes) in objects that all have the same interface (that's what stays the same). Composition : - Composition can also be considered a pattern, since it allows you to change—dynamically or statically—the objects that implement your class, and thus the way that class works. Some principles of designing the c...