3.0.2 Configurable Implementations
A specific design technique often used in the J2EE platform is the notion of describing completely abstract designs (through the use of interfaces) that allow the entire implementation to be configurable. This means that developers are aware of, and have visibility to, a set of interface types without regard to how they are implemented; implementation is the vendor's responsibility. This allows developers to choose the best available solutions. Figure 3.1 shows the dual relationship interfaces create between developers and vendors.
Figure 3.1. Relationship between developers and vendors.