What major patterns do the Java APIs utilize?
Design patterns are used and supported extensively throughout the Java APIs. Here are some examples: • The Model-View-Controller design pattern is used extensively throughout the Swing API. • The getInstance() method in java.util.Calendar is an example of a simple form of the Factory Method design pattern. • The classes java.lang.System and java.sql.DriverManager are examples of the Singleton pattern, although they are not implemented using the approach recommended in the GoF book but with static methods. • The Prototype pattern is supported in Java through the clone() method defined in class Object and the use of java.lang.Cloneable interface to grant permission for cloning. • The Java Swing classes support the Command pattern by providing an Action interface and an AbstractAction class. • The Java 1.1 event model is based on the observer pattern. In addition, the interface java.util.Observable and the class java.util.Observer provide support for this pattern. • The Adapter pattern is