Para una asignación, tengo que averiguar cuál de patrón de diseño Banda de los Cuatro de las clases java.io.Reader
y sus subclases java.io.PushbackReader
, java.io.BufferedReader
y java.io.FilterReader
fueron construidas con.
Según esta publicación, el patrón de diseño sería el Patrón Decorador. Esto solo tiene sentido para mí si PushbackReader
, BufferedReader
y FilterReader
puede ser decorado para ser usado al mismo tiempo, creando efectivamente a BufferedPushbackFilterReader
. ¿Esa es la idea?
java
design-patterns
Comunidad
fuente
fuente
Buffered
naturaleza sobre laFilter
naturaleza?Respuestas:
Sí, puedes decorarlos así. Solo considera lo siguiente
Eso decoraría un lector original para
FilterReader
yReader
son clases base en la jerarquía ...fuente
BufferedReader
,FilterReader
yPushbackReader
son decoradores deReader
, ¿verdad?El patrón decorador se aplica aquí porque
BufferedReader
envuelve unReader
- sigue siendo unReader
(tiene todos los métodos deReader
), pero tiene más "campanas y silbatos" (más métodos).Aquí hay un ejemplo que muestra cómo una clase "decora" la funcionalidad de la que envuelve, y puede encadenarlas para seguir decorando:
fuente