Java 装饰图案与列表
在阅读Decorator模式时,遇到了一些需要澄清的问题。在decorator模式中,我们只是包装一个给定的对象,并使用一系列执行来进行计算。但是为什么我们不能有这些对象的列表并遍历它们呢。我的意思是,如果没有链子,我们就不能用一个列表和简单的迭代来遍历每个对象吗Java 装饰图案与列表,java,design-patterns,Java,Design Patterns,在阅读Decorator模式时,遇到了一些需要澄清的问题。在decorator模式中,我们只是包装一个给定的对象,并使用一系列执行来进行计算。但是为什么我们不能有这些对象的列表并遍历它们呢。我的意思是,如果没有链子,我们就不能用一个列表和简单的迭代来遍历每个对象吗 感谢有了列表,您需要一些对象来管理列表、遍历和应用对象。为了与插件兼容,manager对象必须是所有对象(通常是抽象的)基类的子类。这比让每个物体都知道它在包装什么东西更不灵活。我相信你已经错过了装饰的要点 Decorator旨在透明
感谢有了列表,您需要一些对象来管理列表、遍历和应用对象。为了与插件兼容,manager对象必须是所有对象(通常是抽象的)基类的子类。这比让每个物体都知道它在包装什么东西更不灵活。我相信你已经错过了装饰的要点
Decorator旨在透明地添加行为。典型的例子是Java中的InputStream。您可以将缓冲、gzip功能链接到输入流。但是,该修饰输入流的“用户”不需要知道添加了额外的行为。用户只需将该修饰流用作普通流。当然,如果您将每个“行为”作为一个单独的对象,并将链存储为另一个列表,并显式地单独调用它们,那么它将起作用。但是它在decorator中失去了“透明性”。装饰操作将在对象中执行。对于列表,它位于对象外部