Decorator pattern mess

后端 未结 2 1740
南笙
南笙 2021-01-20 03:13

I\'m having a problem figuring out if I\'m using the decorator pattern the right way. Let\'s suppose I\'m working on a console application. In this application I have define

相关标签:
2条回答
  • 2021-01-20 04:09

    This is a well-known drawback. The GoF mentions the following liability of the Decorator Pattern.

    Lots of little objects. A design that uses Decorator often results in systems composed of lots of little objects that all look alike. The objects differ only in the way they are interconnected, not in their class or in the value of their variables. Although these systems are easy to customize by those who understand them, they can be hard to learn and debug.

    0 讨论(0)
  • 2021-01-20 04:09

    You're not necessarily correct. Rather than decorating object right away, keep some kind of a decoration shema, validatable, lazy, which can be converted into needed (final, ready-to-use) object by calling, let say, .Build(). Just a code sketch: obj.DecorateWith<Decorator1>().DecorateWith<Decorator2>().DecorateWith(() => new Decorator3(IContainer.Resolve<SomeWhatArgument> ...).Build(). It makes things definitely harder, however as long as decorating is right way to go and your project is indeed big enough to benefit from such a high abstraction, it will solve your problem.

    0 讨论(0)
提交回复
热议问题