This localization reduces the effort required to understand and maintain existing software. Frameworks promote component reusability. The stable interfaces provided by frameworks enhance reusability by defining generic components that can be reapplied to create new applications. Framework reusability leverages the domain knowledge and prior effort of experienced developers in order to avoid re-creating and revalidating common solutions to recurring application requirements and software design challenges. Reuse of framework components can yield substantial improvements in programmer productivity, as well as enhance the quality, performance, reliability and interoperability of software.
Frameworks provide a flexible and extensible development platform.
A framework enhances extensibility by providing explicit hook methods that allow applications to extend its stable interfaces. Hook methods systematically decouple the stable interfaces and behaviors of an application domain from the variations required by instantiations of an application in a particular context. Framework extensibility is essential to ensure timely customization of new application services and features. These include security, database connectivity, separation of presentation from business logic, and application integration. Simple applications can be 'squeezed out of the Jaydoh factory' with little additional coding, and more complex applications can be created from pre-formed components.