Chapter 5. Keep Unit Interfaces Small

Bunches of data that hang around together really ought to be made into their own object.

Martin Fowler

Guideline:

  • Limit the number of parameters per unit to at most 4.

  • Do this by extracting parameters into objects.

  • This improves maintainability because keeping the number of parameters low makes units easier to understand and reuse.

There are many situations in the daily life of a programmer where long parameter lists seem unavoidable. In the rush of getting things done, you might add a few parameters more to that one method in order to make it work for exceptional cases. In the long term, however, such a way of working will lead to methods that are hard to maintain and hard to reuse. To keep your code maintainable it is essential to avoid long parameter lists, or unit interfaces, by limiting the number of parameters they have.

A typical example of a unit with many parameters is the render method in the BoardPanel class of JPacman. This method renders a square and its occupants (e.g., a ghost, a pellet) in a rectangle given by the x,y,w,h parameters.

/**
 * Renders a single square on the given graphics context on the specified
 * rectangle.
 *
 * @param square
 *            The square to render.
 * @param g
 *            The graphics context to draw on.
 * @param x
 *            The x position to start drawing.
 * @param y
 *            The y position to start drawing.
 * @param w
 *            The width of this square (in pixels).
 * @param h
 * The height of this square (in pixels). ...

Get Building Maintainable Software, Java Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.