如何理解解耦?
在訂閱發布模式和直接調用處理函數時,我只看到了當被調用的處理函數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