|
|
1
9
在上的javascript中有多种装饰器模式的实现 Wikipedia 和其他站点- (1) , (2) , (3) 。模式定义为: decorator模式是一种设计模式,允许将新的/附加的行为动态添加到现有对象中。 对象扩展已经内置到语言本身中。对象可以很容易地扩展,属性可以随时添加。那么,你为什么要跳过铁环才能做到这一点呢?这样的事情不足以:
如果要将方法应用于使用此函数创建的所有对象,请将该方法/属性添加到函数的原型中。 更新 :如果您有明确定义的功能块,可以根据需要将其混合和匹配到特定类型的对象中,则 MooTools 接近 extending 和 mixing 对于对象的行为来说是很好的。为了给出一个例子,考虑一个UI组件,它可以调整大小,用一个手柄拖动,并通过单击右上角的记号删除。您可能不希望创建具有这些行为的每个组件,而是将所有这些行为分别定义为各自的对象。然后根据需要将这些行为混合到每种类型的组件中。
在我看来,这比做一些像
因为我们仍然在处理一个标签,而不是一些可调整大小的,或者一些可拖动的,或者一些可删除的对象。另一个小问题,但仍然值得一提的是,括号开始变得难以管理后,3或4装饰,特别是没有良好的IDE支持。 |