No artigo do guj eles explicam como usar ele para gravar em arquivos, e mesmo assim eles não explicam detalhadamente. Eu sei fazer, mas naum sei como funciona.
Já no Decorator Design Pattern me parece que o que tem lá não tem muito a ver com o que eu pedi naum…
Como o pessoal mencionou, o tal do “Decorator Design Pattern” diz que você pode criar uma classe que só acrescenta uma funcionalidade a uma classe já existente. Por exemplo, quando você usa a classe BufferedReader, ela acrescenta alguns métodos à classe que ela recebe como parâmetro no construtor, que no caso é um InputStreamReader. No caso, é o método readLine.
Aí também é usado um outro design pattern que é o “Adapter”. No caso, você tem um InputStream (System.in) mas precisa de um objeto que pertença a uma classe que implemente Reader, para poder passar ao construtor de BufferedReader. Nós então precisamos de um “Adapter” ou adaptador (igualzinho a aquele transformador que você usa para transformar 220 V para 110 V quando você quer ligar um aparelho que só funciona em 110 V em uma tomada de 220 V).
Nós então usamos a classe InputStreamReader, que converte um InputStream (System.in) para uma classe que implementa Reader (nesse caso InputStreamReader).