Dla zadania, muszę dowiedzieć się, który z Gang of Four wzorca projektowego klasy java.io.Reader
i jej podklasy java.io.PushbackReader
, java.io.BufferedReader
i java.io.FilterReader
zostały zbudowane z.
Zgodnie z tym postem wzorem projektu byłby wzór dekoratora. To ma sens tylko do mnie, czy PushbackReader
, BufferedReader
i FilterReader
mogą być ozdobione być używane w tym samym czasie, tworząc skutecznie BufferedPushbackFilterReader
. Czy to jest pomysł?
java
design-patterns
Społeczność
źródło
źródło
Buffered
Przyroda nadFilter
naturą?Odpowiedzi:
Tak, naprawdę możesz je tak ozdobić. Zastanów się, co następuje
To ozdobiłoby oryginalnego czytelnika
FilterReader
iReader
są klasami podstawowymi w hierarchii ...źródło
BufferedReader
,FilterReader
iPushbackReader
są wśród dekoratorówReader
, prawda?Wzór dekorator stosuje się tutaj, ponieważ
BufferedReader
okładyReader
- to wciążReader
(ma wszystkie metodyReader
), ale ma więcej „wodotryski” (więcej metod).Oto przykład pokazujący, w jaki sposób jedna klasa „ozdabia” funkcjonalność tej, którą otacza, i możesz połączyć je w łańcuch, aby nadal dekorować:
źródło