
Evaluating Software Design Patterns — the "Gang of Four" patterns implemented in Java 6 

PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 
See:
Description
Class Summary  

AckermannSequence  An Ackermann sequence calculates the next value of the Ackermann function,
v = A(m, n), each time AckermannSequence.next() is invoked, using a fixed value for
m and thus increasing n, either indefinitely, or until a maximum
value has been reached. 
FibonacciSequence  A Fibonacci sequence represents an integer sequence, where
each number delivered by FibonacciSequence.next() is the sum of the two
preceding numbers, except one which is the initial value:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, .. 
Main  Facade tests. 
MathFacade  A math facade is a small math library that represents aneasytouse highlevel interface for complex mathematical functions. 
RandomSequence  A random sequence returns a pseudo integer random number
with each call to RandomSequence.next() between [0, maximum] , where
maximum is supplied at construction time. 
UnboundedRandomSequence  An unbounded random sequence returns a pseudo integer random number
with each call to UnboundedRandomSequence.next() with no upper bound. 
Implementations and examples of the Facade design pattern [Gamma95, p.185].
Intent:
Provide a unified interface to a set of interfaces in a sub—system. Facade defines a higher—level interface that makes the sub—system easier to use.
MathFacade
class. It supplies an
aneasytouse highlevel interface to complex mathematical
functions that internally are implemented using various
Sequence
types.
Specific SubsystemClass participants defined in this package are
AckermannSequence
,
FibonacciSequence
,
RandomSequence
, and
UnboundedRandomSequence
,
while various classes from other packages are also used to
represent subsystem classes, for example
SequenceIterator
and
ReversiblePrimeSequence
.
Implementation notes:
The small examples used throughout this thesis does not really
justify use of Facade; they are simply not complex enough. Still,
this Facade implementation address several issues discussed by
Gamma et al. [Gamma95, p.185193]:
Sequence
types
are too verbose and tedious to be implemented by any client, and hence
this facade help provide the desired functionality, shielding clients
from the gory details.
AckermannSequence
class.

Gunni Rode / rode.dk  
PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 