The benefits of frameworks can be
summarized as follows:- Less code to write. Much of the program's design and structure, as
well as its code, already exists in the framework.
- More reliable and robust code. Code inherited from a framework has
already been tested and integrated with the rest of the framework.
- More consistent and modular code. Code reuse provides consistency and
common capabilities between programs, no matter who writes them. Frameworks also
make it easier to break programs into small pieces.
- More focus on areas of expertise, less focus on areas of system
compatibility. Developers can concentrate on the specific handling and
presentation requirements of the data in a particular problem domain. They don't
have to be experts at writing user interfaces, networking, or printing to use the
frameworks that provide those services.
- Generic solutions that can be reused for other, related problems.
Programmers who are used to dealing with frameworks tend to think in terms of
generic solutions rather than special solutions. They can even design their own
programs as frameworks to be reused by themselves or others.
- Improved maintenance and orderly program evolution. When you fix a bug
in a framework, you fix the same bug in all the software derived from it.
Similarly, when you add new features or capabilities to a framework, they just
show up and work in all applications on the same system that are derived from
that framework.
- Improved integration of related programs. Because all programs based
on a particular framework inherit not only common code but also common design,
programmers who are working on similar programs have a better chance of
understanding and working with each other's code, and the programs they develop
are more likely to work together consistently and reliably.
The last point is worth emphasizing. Frameworks can permit a high level of
integration among multiple customizations. Much as individual objects hide their
internal complexity and present a simplified interface for use by other objects,
frameworks allow programmers to take advantage of preassembled complex
relationships among objects without necessarily having to understand all the
details of those relationships. Frameworks are designed to be subclassed and used
by many programs at the same time in a way that allows programs to share common
behavior without interfering with each other's specialized implementations.
This contrasts with class libraries, which are generally designed for use by one
program at a time. Because they share the same underlying code, framework-derived
programs work together reliably even though their designers don't know each other
and may customize the framework in very different ways.
[Contents]
[Previous]
[Next]
Addison-Wesley Publishing Company, Copyright©1995 by Sean Cotter
and Taligent,Inc. All rights
reserved.