Electronic Proceedings of the
ACM Workshop on Effective Abstractions in Multimedia
November 4, 1995
San Francisco, California

Design Patterns for Hypermedia Applications


Expert hypermedia designers do make good designs, and typically they don't solve every problem from scratch, but reuse solutions that they have used in the past. Such reuse of design experience is the most valuable kind of reuse. What we need to express and record are general solutions for recurrent problems that arise in different situations; we call them hypermedia design patterns.

Quoting the architect Christopher Alexander [Alexander77]: "each pattern describes a problem which occurs over and over again in our environment, and then describes the core of a solution to that problem in such a way that you can use this solution a million times over, without ever doing it the same way twice". Design Patterns are being increasingly used in software design [Gamma94] but remain unexplored in the hypermedia field and in particular for describing hypermedia interface and navigational styles.


Navigation Observer


Allows defining different navigation history viewers in such a way that viewers are decoupled from history and history is decoupled from navigation objects [Rossi95]


Navigation Strategy


Allows defining different algorithms for link traversal such as: direct, computed, target-created on demand, simplifying the logic of link objects. At the same time it decouples link target computing from navigational transformations [Rossi95]


Navigation State


Allows recording the state of navigation to be used either during backtracking for example.


Backtrack Strategy

Implements backtracking allowing different algorithms (as discussed in [Bieber 94]).

References

  • [Bieber94] Bieber, M. Wang, J. : "Backtracking in a multiple windows environment", Proceedings of ACM European Conference on Hypertext, Edinburgh, 1994, ACM Press..
  • [Rossi95] G.Rossi; A. Garrido; S. Carvalho, ÒObject-Oriented Patterns for Hypermedia ApplicationsÓ, Proceedings of Patterns Languages of Programs (PLOP'95), forthcoming
  • back to article