banq 你好,请教Observer模式

你好,Banq大哥,我想请教一下关于Observer模式的一个问题:
我不明白使用Observer执行想要执行的动作,和直接new Observer().doAction();执行想要执行的动作,这两个有什么区别?
谢谢

区别是调用者和doAction中内容的耦合性。

new Observer().doAction():当你调用这一句时,你已经和doAction耦合了。就象你在路上遇到骗子,如果你不理睬,装着没看见,就什么都没发生,但是当你只要开口, 和骗子互动了,那么你就进入和骗子有联系的一个新场景,最后,你可能被骗了。

而使用Observer时,调用者和doAction之间没有任何关系,实现了分离解耦,设计模式的用途就是松耦合,尽可能降低两者之间的关系,最好没有关系。