jquery和观察者模式

时间:2011-08-03 22:20:42

标签: jquery design-patterns observer-pattern

我开始使用模式观察器来开发我的jQuery应用程序,但是我真的不明白这种模式的好处。

示例:

myfunctions = {
    first_function: function() {
        alert('This is the first function');
    },
    second_function: function() {
        alert('This is the second function');
    }
};

现在,为什么这个方法:

$(document).bind({
    'first_function': myfunctions.first_function,
    'second_function': myfunctions.second_function
});

$('button').bind('click', function() {
    $(document).trigger('first_function');
});

比这更好:

$('button').click(function() {
    myfunctions.first_function();
});

2 个答案:

答案 0 :(得分:3)

当你对其他“事物”感兴趣时,观察者模式很有用,但你并不确切知道那些“事物”究竟有多少甚至是什么。

我几年前在javascript中为“仪表板”样式页面实现了观察者模式,其中各种面板使用了许多控件(在页面顶部)。如果一个或多个控件的值发生变化,那些面板需要刷新。它工作得很好,因为我可以添加新面板并将它们设置为任何“顶部”控件的观察者,而无需控件需要了解新面板。

答案 1 :(得分:0)

嗯,在你的设计案例中,事实并非如此。

当你的代码增长时,它就是。它更具可扩展性。