<p>Observer模式和Publish/Subscribe模式孤立我们努力思考应用程序的不同部分之间的关系,它们也帮助我们识别包含直接关系的层,并且可以用目标和观察者进行替换。实际上可用于将应用程序分解为更小、更松散耦合块,以改进代码管理和潜在的复用。使用Observer模式背后的另一个动机是我们需要在哪里维护相关对象之间的一致性,而无需使用类紧密耦合。例如,当一个对象需要能够通知其他对象,而无需在这些对象方面做出假设。在使用任何一种模式时,动态关系可以在观察者和目标之间存在。这是提供很大的灵活性,当应用程序的不同部分紧密耦合时,这可不是很容易实现的。虽然它可能不一直是所有问题的最佳解决方案,但这些模式仍是用于设计解藕性系统的最佳工具之一。</p>