Ruby on Rails模式 – 装饰者vs主持人

最近在Ruby on Rails社区里有关于装饰器和演示者的各种讨论。

两者之间的本质区别是什么? 如果有的话,有哪些线索告诉我哪一个用于另一个? 或者也许使用这两个结合?

装饰器更像是“让我们为这个实体添加一些function”。 主持人更多的是“在模型/后端和视图之间build立桥梁”。 主持人模式有几种解释。

装饰者是通用的/通用的。 演讲者的职责范围较窄。 装饰者跨领域使用,主持人几乎总是与视图function相关。

  • Draper网站
  • RailsCasts Draper Episode

我build议你检查一下 – 展品vs演示者 。

装饰器是一种devise模式,用于通过包装来扩展特定对象的function,而不影响该对象的其他实例。 一般来说,装饰器模式是开放/closures原则的一个例子(该类为修改closures,但可用于扩展)。

展览和主持人模式都是一种装饰模式。

Interesting Posts