The <FONT FACE="Courier">ITERATOR</FONT> pattern represents what many OO developers think of as <I>the</I> design for iteration in an object system, but there is more to iteration abstraction than just <FONT FACE="Courier">ITERATOR</FONT>. Kevlin looks at three iteration patterns—<FONT FACE="Courier">ITERATOR</FONT>, <FONT FACE="Courier">ENUMERATION METHOD</FONT>, and <FONT FACE="Courier">BATCH METHOD</FONT>—whose solutions differ in their response to threading, distribution, exceptions, and parameterization.
Ant is a Java- and XML-based build tool from Apache's Jakarta project. Ant has the capacity to move files around using a very rich set of include/exclude directives and can move files via FTP. Peter provides a simple, step-by-step example of a typical Ant build file.
A general-purpose Aspect-Oriented Programming (AOP) extension to Java, AspectJ enables the modularization of such crosscutting concerns as system-wide error-checking strategies, design patterns, synchronization policies, resource sharing, distribution concerns, and performance optimizations. AOP tools such as AspectJ hold the potential for simplifying and all but eliminating some of the most time-consuming, frustrating, and difficult aspects of OO development. Rich Price, who works with AspectJ at CheckFree Corp., reviews this early AOP tool.
The key to flexible and scalable systems is distributed processing, and a key to distributed processing is code mobility. Michael discusses the Flexible Model View Controller Technique, the Categorizing Business Rules Technique, and the Domain Bean Mobility Technique for architecting and designing multitier systems.
In this new column, Duane focuses on J2EE's server-side scripting language for building dynamic content. Various aspects of JSP development are covered, and readers will learn how to use this technology to its fullest. Recent changes to the JSP API focus on fixing some rough spots in the language, improving custom tags, and better preparing the technology for tool support.