Farewell to 'Design Techniques'

JavaWorld columnist closes with a brief history of his column, hints at what's to come

1 2 Page 2
Page 2 of 2
  • Introduction to 'Design Techniques' (February 1998) -- The first installment of the Design Techniques column introduces the column and discusses the larger issues involved in designing Java programs. In addition, it examines the software development process in general, describes the role of design within that process, and looks at the various and competing goals of a "good" software design. (4,500 words)

  • Object initialization in Java (March 1998) -- This article describes in detail the process of object initialization in Java programs. It discusses constructors, initializers, instance initialization (<init>) methods, initialization and inheritance, object images on the heap, and the order in which an object's variables get initialized. It serves as a companion to the regular Design Techniques installment, "Designing object Initialization." (5,000 words)

  • Designing object initialization (March 1998) -- This installment of Design Techniques begins with a quick look at object design fundamentals, then goes on to discuss various approaches to designing initializers and constructors so as to facilitate the proper initialization of objects. (4,000 words)

  • Designing fields and methods (April 1998) -- This article shows how some fundamental software design techniques, such as avoiding special data values and minimizing method coupling, apply to Java. (4,000 words)

  • What's a method to do? (May 1998) -- This article shows how to maximize method cohesion while avoiding method explosion. (3,500 words)

  • Object finalization and cleanup (June 1998) -- This article discusses design guidelines that pertain to the end of an object's life. (3,500 words)

  • Exceptions in Java (July 1998) -- This article gives an in-depth account of exceptions in the Java language and virtual machine. (6,000 words)

  • Designing with exceptions (July 1998) -- This article discusses design guidelines concerning when and how to use exceptions. (3,000 words)

  • Designing for thread safety (August 1998) -- This article discusses design guidelines concerning when and how to make objects thread-safe. (3,000 words)

  • The event generator idiom (September 1998) -- This article discusses how and when to make a Java class observable. (3,000 words)

  • The canonical object idiom (October 1998) -- This article proposes an idiom that defines a baseline set of functionality for objects. (2,500 words)

  • Inheritance versus composition (November 1998) -- This article discusses how to choose between inheritance and composition. (2,500 words)

  • Designing with interfaces (December 1998) -- This article discusses how to use Java's interface. (2,500 words)

  • Designing with dynamic extension (January 1999) -- This article discusses how to use forName() and class loaders in designs. (2,500 words)

  • Designing with runtime class information (February 1999) -- This article discusses how to use all the information about an object's class that is available at runtime. (3,500 words)

  • Designing with static members (March 1999) -- This article discusses how to use static fields and methods. (1,500 words)

The Flexible Java Forum

Here is an annotated list of discussion topics at the Flexible Java Forum:

A thank-you

Before I go, I'd like to say thanks to all the readers of my

Design Techniques

articles. I hope you found them useful.

Thanks especially to those who submitted feedback, either through e-mail, through the comment boxes at the bottom of each JavaWorld article, or via the Flexible Java Forum. The feedback, especially criticism, was very helpful.

What's next

From this point forward, my design-oriented writing will be focused on writing Flexible Java. I will be publishing the book-in-progress on my Web site as I write it, so you can follow along and, if you wish, send me feedback. If you would like to receive occasional announcements as I progress through the writing of the book, you can sign up for my mailing list.

As far as JavaWorld goes, another column is in the planning stages. In the next few months, I should return with a monthly column focused on distributed systems programming in Java, RMI, and Jini.

ENDNOTE: The small print: "Farewell to Design Techniques" article Copyright (c) 1998 Bill Venners. All rights reserved. :END_ENDNOTE

Learn more about this topic

  • Bill Venners's next book is Flexible Java http://www.artima.com/flexiblejava/index.html
  • The Flexible Java Forum http://www.artima.com/flexiblejava/fjf/index.html
  • The Artima Mailing List (subscribe if you want to receive periodic updates about Flexible Java) http://www.artima.com/subscribe.html
  • An complete online reprint of "The Linking Model," Chapter 7 of Bill Venners's book, Inside the Java Virtual Machine http://www.artima.com/insidejvm/linkmod.html
  • The handout and slides for Bill Venners's "Dynamic Extension in Java" talk. http://www.artima.com/javaseminars/modules/DynaExt/index.html
  • Links to all previous design techniques articles http://www.artima.com/designtechniques/index.html
  • Recommended books on Java design http://www.artima.com/designtechniques/booklist.html
  • A transcript of an e-mail debate between Bill Venners, Mark Balbe, and Mark Johnson (JavaWorld's JavaBeans columnist) on whether or not all objects should be made into beans http://www.artima.com/flexiblejava/comments/beandebate.html
  • Object orientation FAQ http://www.cyberdyne-object-sys.com/oofaq/
  • 7237 Links on Object Orientation http://www.rhein-neckar.de/~cetus/software.html
  • The Object-Oriented Page http://www.well.com/user/ritchie/oo.html
  • Collection of information on OO approach http://arkhp1.kek.jp:80/managers/computing/activities/OO_CollectInfor/OO_CollectInfo.html
  • Design Patterns Home Page http://hillside.net/patterns/patterns.html
  • A Comparison of OOA and OOD Methods http://www.iconcomp.com/papers/comp/comp_1.html
  • Object-Oriented Analysis and Design MethodsA Comparative Review http://wwwis.cs.utwente.nl:8080/dmrg/OODOC/oodoc/oo.html
  • Patterns discussion FAQ http://gee.cs.oswego.edu/dl/pd-FAQ/pd-FAQ.html
  • Patterns in Java AWT http://mordor.cs.hut.fi/tik-76.278/group6/awtpat.html
  • Software Technology's Design Patterns Page http://www.sw-technologies.com/dpattern/
  • Previous Design Techniques articles http://www.javaworld.com/topicalindex/jw-ti-techniques.html
1 2 Page 2
Page 2 of 2