4.1 Reuse in Web Applications
Reusability is a driving factor in
object-oriented languages, including Java. Java is full of built-in
frameworks meant to promote reuse. JavaBeans provides an explicit
component model, while Swing and AWT both provide reusable widget
libraries. Throughout the software industry, the adoption of
object-oriented programming languages in the 90s led to
across-the-board development of a number of frameworks for reuse.
Sadly, there is no standard component framework in the relatively
young field of J2EE web applications. While the JavaBeans component
model is often used to communicate model data, there is no universal
mechanism for reusing parts of views or controllers. Until quite
recently, web application developers have had to build their own
framework or settle for applications that were not intrinsically
reusable. This problem has been recently recognized, and frameworks
such as Struts have gained popularity as a solution (see the sidebar
"Frameworks and Patterns"). These
frameworks allow controllers and views to be developed using standard
interfaces and connected in standard ways.
Most web application frameworks implement at least the MVC pattern,
and many even claim to be
"pattern-based." In general,
frameworks force
applications written to them to conform to certain patterns.
Recognizing these patterns can be a big help in designing
applications that work well in a given framework.
Here's a look at two popular frameworks and the
patterns they implement:
Jakarta
Struts is probably the best-known web application framework. It is
based on what they call a "Model 2"
approach, an implementation of MVC in which you write the model and
view components, and Struts provides the controller. The Struts
controller is based on the Service to Worker pattern, featuring a
front controller, a dispatcher configured via XML files, and a code
framework for embedding application logic into
actions. Struts also provides a number of
utility classes and tag libraries, including Tiles, an implementation
of the Composite View pattern. JavaServer Faces (JSF) is a new web
application framework from Sun. The primary goal of JSF is to provide
a UI framework for web applications, allowing the development of
custom, reusable UI widgets that maintain state across requests. As
such, JSF is centered around the Composite View pattern, and includes
an extensive tag library for developing and using these components.
JSF also provides a simple implementation of the Service to Worker
pattern, including a front controller, an XML-configured navigation
handler, and support for actions.
|
|