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

dk.rode.thesis.prototype
Interface StrictCopyable<T extends StrictCopyable<T>>

Type Parameters:
T - The type of copyable object.
All Superinterfaces:
Copyable<T>
All Known Subinterfaces:
AspectObservableSequence<O,A,E>, Command<E>, ComparableExpressionBuilder<E>, CompositeSequence<E>, Expression<E>, ExpressionBuilder<E>, InitialisableExpression<E>, MemorizableSequence<E>, NonTerminalExpression<E>, ObservableSequence<O,A,E>, ReversibleSequence<E>, Sequence<E>, StateableSequence<E>, StepSequence, TerminalExpression<E>, TypedExpression<E>, TypeVisitableSequence<E>, ValueVisitableSequence<E>
All Known Implementing Classes:
AbstractCompositeSequence, AbstractExpression, AbstractExpressionBuilder, AbstractSequence, AbstractStateableSequence, AbstractVisitableSequence, AckermannSequence, AndExpression, AnnotatedObserversSequence, AnnotatedObserversSequenceDecorator, AppenderDecorator, ArraySequence, AssignmentExpression, BinaryExpression, BreakExpression, CharSequenceCompositeSequence, CompareExpression, CompositeCommand, ConditionalExpression, ConstantExpression, CountdownSequence, CountingComparableExpressionBuilder, CountingExpressionBuilder, CurrentExpression, DanishAlphabetSequence, DateSequence, DateValuedVisitableSequence, DigitSequence, DuplexDecorator, EnglishAlphabetSequence, EqualExpression, EvenSequence, EvilCommand, FibonacciSequence, FileSequence, FlowExpression, HexDigitSequence, ImmutableSequence, IntegerValuedVisitableSequence, IterableSequence, LogCommand, LongSequence, MemorizableEnglishAlphabetSequence, MemorizableSequenceAbstraction, MutatedSimpsonsFamilySequence, NegativeSequence, NextCommand, NextExpression, NonResettableSequence, NorwegianAlphabetSequence, NotExpression, NullCommand, OddSequence, OrExpression, PrimeSequence, ProcessableSequence, RandomSequence, RangeSequence, ReflectiveVisitableSequence, ResetCommand, ResetExpression, ReverseCommand, ReverseExpression, ReversiblePrimeSequence, Sentence, SequenceAbstraction, SequenceAdapter, SequenceCommand, SequenceDecorator, SequenceExpression, SequenceObserversSequence, SequenceObserversSequenceDecorator, SequenceTemplate, SetExpression, SimpsonsAndBouvierFamilySequence, SimpsonsFamilySequence, SmileySequence, StandardComparableExpressionBuilder, StandardExpressionBuilder, StepSequenceImpl, StringValuedVisitableSequence, SymbolSequence, SynchronisedSequence, SynchronisedSequenceAbstraction, TypedComparableExpressionBuilder, TypedExpressionBuilder, TypedExpressionDecorator, TypedFlowExpression, UnboundedRandomSequence, UppercaseDecorator, VariableExpression, VisitableCompositeSequence, VisitableLongSequence, VisitableRandomSequence, VisitableReversiblePrimeSequence, Word, ZipSequence

@Participant(value="Prototype")
public interface StrictCopyable<T extends StrictCopyable<T>>
extends Copyable<T>

A strict copyable object can return a deep copy of it self any type implementing this interface can act as a prototype.

Though not required, it is prudent to supply a copy constructor for any type implementing the Copyable interface.

Implementation notes:
Unlike Copyable, this interface will return an instance of the copyable type itself.

Author:
Gunni Rode / rode.dk

Method Summary
 
Methods inherited from interface dk.rode.thesis.prototype.Copyable
copy
 


Gunni Rode / rode.dk

Feel free to use and/or modify the Java 6 source code developed for this thesis AT YOUR OWN RISK, but note that the source code comes WITHOUT ANY — and I do mean WITHOUT ANY — form of warranty WHAT SO EVER!

The original thesis and source code are available at rode.dk/thesis.