Figure 1: The Business Type Model for the ReportWriter
component
This BTM shows the different components acting together to
produce the report. The Client component makes a report request to the
RequestHandler component. The RequestHandler component then makes a call to the
ReportWriter component supplying the report parameters to it. The ReportWriter
component then makes use of DAO component to obtain the data from a specific
data source, produces the report and hands it over to the RequestHandler
component to send it back to the appropriate client.
Designing the Classes
Once we have the BTM with us, it is time to get into the
real class structure. Deciding on the class structure is often an iterative
process. The initial design may get affected with slight requirement change or
changes in the existing components that the component in question is going to
use. In this context, the challenge is to come up with a design, which is
flexible enough to accommodate such changes.
Well then, lets proceed with designing the classes for our
ReportWriter component. First of all, let us consider the entry point to the
ReportWriter component. A Client makes a request to the ReportWriter. We need a
mechanism to handle this request. If you are developing a web-based
application, this request will typically be over HTTP. So, we need to have a
mechanism to handle the HTTP requests. In Java world, this is handled by using
a Servlet.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.