使用骨干进行方面编程

Aspect programming using Backbone

本文关键字:方面 编程      更新时间:2023-09-26

我正在寻找一些详细的代码示例,其中我使用Backbone.Advice mixin实现面向方面的编程。

我已经查看了以下链接,但这些链接不是那么直观,我发现很难将其集成到我的 Backbone MV* 应用程序中。

https://github.com/rhysbrettbowen/Backbone.Advice

也有人可以告诉我是否可以使用建议访问传递给应用建议的方法的原始参数。

编辑:在原始线程中回答您的问题

问:你到底在寻找什么?基于特征的组合和冲突解决通过方法修饰符,如之前,之后,周围或真正的面向方面的编程?

答:我有几个从通用视图继承的视图,现在所有这些视图都包含自己的渲染实现,我想应用一个建议,即在每次渲染后做一些自定义的东西等。

我正在寻找一些带有代码的详细示例...

不幸的是,我无法指出你在这方面的某个地方。但我也许可以为其他人提供帮助。

。 哪里。。。面向方面的编程是使用Backbone.Advice mixin实现的。

查看源代码,"Backbone.Advice"不提供面向方面的编程的任何功能。

但是 - 正如Backbone.Advice的第一句话所述 - 它确实提供了"基于Angus Croll建议的Backbone功能混合"。因此,它提供了自己的机制,如果一个人打算使用像Trait这样的Mixin,如何解决组合冲突。

问:你到底在寻找什么?基于特征的组合和冲突解决方法修饰符,如beforeafteraround或真正的面向方面的编程?

问:你想实现什么目标?

也有人可以告诉我是否可以使用建议访问传递给应用建议的方法的原始参数。

再次查看Backbone.Advice的源代码...

https://github.com/rhysbrettbowen/Backbone.Advice/blob/master/advice.js#L36https://github.com/rhysbrettbowen/Backbone.Advice/blob/master/advice.js#L48https://github.com/rhysbrettbowen/Backbone.Advice/blob/master/advice.js#L64

。答案是"绝对是"。

我有几个观点是从共同的观点继承而来的,现在所有 这个视图内容他们自己的渲染实现,我想 应用建议,即每次渲染后做一些自定义内容等。

Backbone通过包装原型函数使这些东西变得非常容易。 例如:

var originalRender = Backbone.View.prototype.render;
Backbone.View.prototype.render = function() {
  // do some stuff before the view renders
  originalRender.apply(this, arguments);
  // do some stuff after the view renders
}

请注意,在此示例中,我已经对 Backbone.View 执行此操作,但如果您只希望某些视图发生此行为,则可以轻松地对"子类"执行此操作。