如何理解解耦?
在訂閱發(fā)布模式和直接調用處理函數(shù)時,我只看到了當被調用的處理函數(shù)B不存在時,觸發(fā)者本身A的函數(shù)還能正常執(zhí)行。而當被調用的處理函數(shù)B本身發(fā)生錯誤時,兩種模式中A都會報錯,導致代碼停止。
例:
訂閱發(fā)布模式:function A(){處理某些事情;publish("消息",事件名);處理某些事情;}//假設事件名對應的處理函數(shù)Function B
直接調用:function A(){處理某些事情;B(“消息”);處理某些事情;}
是不是意味著解耦就是單單當調用的方法不存在不會出錯
在訂閱發(fā)布模式和直接調用處理函數(shù)時,我只看到了當被調用的處理函數(shù)B不存在時,觸發(fā)者本身A的函數(shù)還能正常執(zhí)行。而當被調用的處理函數(shù)B本身發(fā)生錯誤時,兩種模式中A都會報錯,導致代碼停止。
例:
訂閱發(fā)布模式:function A(){處理某些事情;publish("消息",事件名);處理某些事情;}//假設事件名對應的處理函數(shù)Function B
直接調用:function A(){處理某些事情;B(“消息”);處理某些事情;}
是不是意味著解耦就是單單當調用的方法不存在不會出錯
2015-12-16
如何理解解耦?
在訂閱發(fā)布模式和直接調用處理函數(shù)時,我只看到了當被調用的處理函數(shù)B不存在時,觸發(fā)者本身A的函數(shù)還能正常執(zhí)行。而當被調用的處理函數(shù)B本身發(fā)生錯誤時,兩種模式中A都會報錯,導致代碼停止。
訂閱發(fā)布模式:function A(){處理某些事情;publish("消息",事件名);處理某些事情;}//假設事件名對應的處理函數(shù)Function B
直接調用:function A(){處理某些事情;B(“消息”);處理某些事情;}
在訂閱發(fā)布模式和直接調用處理函數(shù)時,我只看到了當被調用的處理函數(shù)B不存在時,觸發(fā)者本身A的函數(shù)還能正常執(zhí)行。而當被調用的處理函數(shù)B本身發(fā)生錯誤時,兩種模式中A都會報錯,導致代碼停止。
訂閱發(fā)布模式:function A(){處理某些事情;publish("消息",事件名);處理某些事情;}//假設事件名對應的處理函數(shù)Function B
直接調用:function A(){處理某些事情;B(“消息”);處理某些事情;}
2015-12-16
最新回答 / 阿輝2
我的意思當訂閱發(fā)布模式沒有多個訂閱對象的時候,兩種模式的區(qū)別對于觸發(fā)的那個函數(shù)(A)來說,唯一的區(qū)別就是當訂閱者B被取消時,A還能正常執(zhí)行。那這里的耦合是不是就是這么個作用?
2015-12-16