Quote Originariamente inviata da newutente Visualizza il messaggio
Mi permetto di riproporvi il dubbio che ho sul pattern Decorator, non per mettervi fretta ma solo perchè vorrei continuare senza lasciarmi niente indietro.
Il pattern "Decorator" descrive lo scenario in cui ci sono una serie di oggetti denominati con i termini "componente", "componente concreto", "decoratore" e "decoratore concreto".

Nel caso del package java.io (modellato appunto sul Decorator), classi come FileReader, FileWriter, FileInputStream e FileOutputStream NON sono decoratori. Sono componenti concreti!
Per es. BufferedWriter è un decoratore, perché a) è-un Writer, e b) contiene (incapsula) un altro Writer.
Mentre FileWriter è un componente concreto, "finale" nel senso che opera su un qualcosa di ben preciso (esclusivamente su un file) e non incapsula "altro".

InputStreamReader invece è più un "adapter" che un "decorator", perché in effetti fa cambiare completamente faccia allo stream. Infatti contiene un InputStream ma InputStreamReader non è-un InputStream ma bensì un Reader.