如何理解解耦?
在订阅发布模式和直接调用处理函数时,我只看到了当被调用的处理函数B不存在时,触发者本身A的函数还能正常执行。而当被调用的处理函数B本身发生错误时,两种模式中A都会报错,导致代码停止。
例:
订阅发布模式:function A(){处理某些事情;publish("消息",事件名);处理某些事情;}//假设事件名对应的处理函数Function B
直接调用:function A(){处理某些事情;B(“消息”);处理某些事情;}
是不是意味着解耦就是单单当调用的方法不存在不会出错
在订阅发布模式和直接调用处理函数时,我只看到了当被调用的处理函数B不存在时,触发者本身A的函数还能正常执行。而当被调用的处理函数B本身发生错误时,两种模式中A都会报错,导致代码停止。
例:
订阅发布模式:function A(){处理某些事情;publish("消息",事件名);处理某些事情;}//假设事件名对应的处理函数Function B
直接调用:function A(){处理某些事情;B(“消息”);处理某些事情;}
是不是意味着解耦就是单单当调用的方法不存在不会出错
2015-12-16
如何理解解耦?
在订阅发布模式和直接调用处理函数时,我只看到了当被调用的处理函数B不存在时,触发者本身A的函数还能正常执行。而当被调用的处理函数B本身发生错误时,两种模式中A都会报错,导致代码停止。
订阅发布模式:function A(){处理某些事情;publish("消息",事件名);处理某些事情;}//假设事件名对应的处理函数Function B
直接调用:function A(){处理某些事情;B(“消息”);处理某些事情;}
在订阅发布模式和直接调用处理函数时,我只看到了当被调用的处理函数B不存在时,触发者本身A的函数还能正常执行。而当被调用的处理函数B本身发生错误时,两种模式中A都会报错,导致代码停止。
订阅发布模式:function A(){处理某些事情;publish("消息",事件名);处理某些事情;}//假设事件名对应的处理函数Function B
直接调用:function A(){处理某些事情;B(“消息”);处理某些事情;}
2015-12-16
最新回答 / 阿辉2
我的意思当订阅发布模式没有多个订阅对象的时候,两种模式的区别对于触发的那个函数(A)来说,唯一的区别就是当订阅者B被取消时,A还能正常执行。那这里的耦合是不是就是这么个作用?
2015-12-16