DDJ June 1996 - PATTERNS & SOFTWARE DESIGN


FEATURES

MANAGING DYNAMIC OBJECTS IN C++

by Tom Cargill

Dynamic objects in C++ are managed explicitly by the programs you write. The Localized Ownership pattern language Tom presents, however, does the job for you.

STL ITERATORS

by Dan Zigmond

STL iterators--objects that function more or less like conventional pointers--are used as the interface to data structures. Dan explains how iterators are central to the C++ Standard Template Library.

REUSABLE BINARY ASSOCIATIONS IN C++

by Terris Linenbach

Understanding relationships between objects is crucial to the success of any object-oriented software project. Terris presents a design for binary association that consists of both OMT and dynamic-model diagrams. He then implements the design in C++, using templates to promote code reuse.

AN ASYNCHRONOUS DESIGN PATTERN

by Allan Vermeulen

The IOU pattern provides a simple, intuitive way to add asynchronous behavior to applications. Since the IOU pattern is independent of any specific concurrency mechanisms, it is applicable to many different concurrency methods--and it's implemented in Java.

EMBEDDED SYSTEMS

VHDL FOR HARDWARE DESIGN

by Phil Tomson

VHDL is a hardware-description language that frees you from low-level details. Phil uses VHDL to design an interface between a PC's parallel-printer interface and a high-speed data-acquisition system that can generate several million 8-bit data samples per second.

NETWORKED SYSTEMS

REMOVING BLOCKING NETWORK I/O FROM WINDOWS PROGRAMS

by George F. Frazier and Derek Yenzer

Deciding how to handle blocking I/O is essential when designing programs that use the Winsock interface. Our authors present a method for removing the blocking network I/O function calls without having to rewrite the application from scratch.

EXAMINING ROOM

EXAMINING BORLAND DELPHI 2.0

by Ted Faison

Borland's recently released Delphi 2.0 environment supports 32-bit applications, client/server development, team programming, and more.

PROGRAMMER'S WORKBENCH

INSTANTIATING CODE PATTERNS

by Fred Wild

SNIP makes it possible for you to build code patterns into your software. Fred discusses the use of patterns, and describes how you can use SNIP to define and instantiate code patterns.

APPLYING DESIGN PATTERNS TO POWERBUILDER

by Mark Nielsen and Nick Abdo

In applying the Gamma/Helm Observer pattern to a PowerBuilder application, Mark and Nick show how design patterns can help PowerBuilder developers make good design decisions.

COLUMNS

PROGRAMMING PARADIGMS

by Michael Swaine

Tog on Software Design is on Michael's mind this month. He also looks at The Secret Guide to Computers and a new scripting language for the Internet.

C PROGRAMMING

by Al Stevens

Encapsulation comes to Quincy 96 as Al starts by grouping debugger operations in a Debugger class. He then turns to "Herman," a general-purpose document-viewer program written in Visual C++ with MFC.

JAVA Q&A

by Cliff Berg

How do you write a Java-based chat program? Cliff shows you how, starting with a C++ server and Java client.

ALGORITHM ALLEY

by Andrew Colin

Decision trees are used in such diverse applications as bird-watching guides and medical-diagnostic programs. Andrew presents the ID3 algorithm, which uses an information-theoretic metric to build compact decision trees.

UNDOCUMENTED CORNER

by Scot Wingo and George Shepherd

Scot and George show how you can customize the MFC print preview and print-status dialog. They also highlight some techniques for working with undocumented MFC classes that weren't really designed to be customized.

PROGRAMMER'S BOOKSHELF

by Tom Saltsman

PowerBuilder books are in the spotlight, as Tom examines PowerBuilder 4: A Developer's Guide, Developing PowerBuilder 4 Applications, Third Edition, and Special Edition: Using PowerBuilder 4.

FORUM

EDITORIAL

by Jonathan Erickson

LETTERS

by you

SWAINE'S FLAMES

by Michael Swaine

PROGRAMMER'S SERVICES

OF INTEREST

by Monica E. Berg