Tapestry mixin究竟是如何工作的?

我刚读完这篇文章后才意识到,我无法向自己解释它是如何工作的以及它可以解决的问题。

是的,它可以用于更改现有组件的行为。 但它是如何限制的? 我能做什么,不能做什么? 它比inheritance更好吗?

这篇文章很有帮助,但我仍然很困惑。

任何人都可以使用简单的单词 解释 Tapestry mixin吗?

Tapestry Mixin是一个有限的组件版本,应该附加到另一个组件,不能有自己的模板。 它可以访问容器参数,并可以自己引入。 它并不比inheritance更好。 这是改变组件行为的另一种方式。

那么,使用无法通过inheritance完成的mixin可以做些什么:

  • 您可以更改核心挂毯组件的行为
  • 你可以为一个组件使用多个mixin

关于mixinns的其他一些话:

  • 他们通常会引入一些可以应用于所有组件的通用逻辑,例如在某些客户端事件上提交表单或者在某些字段的帮助下附加弹出窗口
  • 他们可以修复核心组件的一些问题,例如我们有mixin修复上传组件,当它以ajaxforms使用时