Decorator classes
CipherInputStream class
DecoratedEncryptDecrypt class
InputStream class
InputStreamEfficiency class
iterator method
makeSuspicious method
ProgressMonitorFileRead class
readFileArrayBuffer method
readFileDecoratorBuffer method
readFileUnbuffered method
Subclasses
SuspiciousAccount class
Iterator method
UnmodifiableAccount class
UnmodifiableBankIterator class
Wrapped objects
Decorator pattern
BankAccount hierarchy
BankAccount objects
BankAccountWrapper class
composed decorator
SuspiciousAccount class
UnmodifiableAccount class
Decorator transparency
BufferedReader method
DoubledChars class
markSupported method
openAndSkip method
printDoubleChars method
ProgressMonitorInputStream class
PushbackInputStream class
PushbackReader method
Don’t repeat yourself (DRY) rule