Para uma atribuição, eu tenho que descobrir qual o padrão de design Gang of Four as classes java.io.Reader
e suas subclasses java.io.PushbackReader
, java.io.BufferedReader
e java.io.FilterReader
foram construídos com.
De acordo com este post, o padrão de design seria o Padrão Decorador. Isso só faz sentido para mim se PushbackReader
, BufferedReader
e FilterReader
pode ser decorado para ser usado ao mesmo tempo, criando efetivamente a BufferedPushbackFilterReader
. Essa é a ideia?
java
design-patterns
Comunidade
fonte
fonte
Buffered
natureza em cima daFilter
natureza?Respostas:
Sim, você pode realmente decorá-los assim. Basta considerar o seguinte
Isso decoraria um leitor original para
FilterReader
eReader
são classes base na hierarquia ...fonte
BufferedReader
,FilterReader
ePushbackReader
são decoradores deReader
, certo?O padrão decorador se aplica aqui porque
BufferedReader
envolve aReader
- ainda é umaReader
(possui todos os métodos deReader
), mas possui mais "sinos e assobios" (mais métodos).Aqui está um exemplo que mostra como uma classe "decora" a funcionalidade da classe que ela envolve, e você pode encadeá-las para continuar decorando:
fonte