Для задания, я должен выяснить , какие из банды четыре шаблона проектирования классов java.io.Reader
и его подклассы java.io.PushbackReader
, java.io.BufferedReader
и java.io.FilterReader
были построены.
Согласно этому посту, шаблон дизайна будет шаблоном Decorator. Это имеет смысл только для меня , если PushbackReader
, BufferedReader
и FilterReader
может быть украшено быть использованы одновременно, создавая эффективно BufferedPushbackFilterReader
. Это идея?
java
design-patterns
Сообщество
источник
источник
Buffered
природу на вершинеFilter
природы?Ответы:
Да, вы действительно можете украсить их так. Просто учтите следующее
Это украсит оригинальный читатель
FilterReader
иReader
являются базовыми классами в иерархии ...источник
BufferedReader
,FilterReader
иPushbackReader
являются декораторыReader
, не так ли?Картина декоратор применяется здесь , потому что
BufferedReader
оборачиваетReader
- это по - прежнемуReader
( в ней есть все методыReader
), но он имеет больше «наворотов» (больше методов).Вот пример, показывающий, как один класс «украшает» функциональность того, который он упаковывает, и вы можете объединить их в цепочку, чтобы продолжить украшать:
источник