第6章 观察者模式——了解对象的情况
在上一章中,我们首先简要介绍了代理的概念,并讨论了代理设计模式。然后,通过UML图进一步加深了对代理模式概念的理解,并且借助Python的实现展示了该模式在现实世界中的应用。最后,我们通过“常见问答”部分解答了代理模式的常见疑惑。
在本章中,我们将讨论第三种类型的设计模式:行为型设计模式。本章将介绍观察者设计模式,它就是一种行为型模式。我们将讨论如何在软件应用开发中使用观察者设计模式。我们将提供一个示例用例,并通过Python v3.5实现该用例。
简而言之,我们将在本章中讨论下列主题:
- 行为型设计模式简介;
- 观察者模式及其UML图;
- 利用Python v3.5代码实现一个真实用例;
- 松耦合的强大威力;
- 常见问答。
在本章的最后,我们将对整个讨论进行小结。
6.1 行为型模式简介
在本书的前面几章中,你学习了创建型模式(单例模式)和结构型模式(门面模式)。在本节中,我们将简要介绍行为型模式。
创建型模式的工作原理是基于对象的创建机制的。由于这些模式隔离了对象的创建细节,所以使得代码能够与要创建的对象的类型相互独立。结构型模式用于设计对象和类的结构,从而使它们可以相互协作以获得更大的结构。它们重点关注的是简化结构以及识别类和对象之间的关系。
行为型模式,顾名思义,它主要关注的是对象的责任。它们用来处理对象之间的交互,以实现更大的功能。行为型模式建议:对象之间应该能够彼此交互,同时还应该是松散耦合的。我们将在本章稍后介绍松耦合的原理。
观察者设计模式是最简单的行为型模式之一,所以,我们不妨从它入手开始学习这类模式。
6.2 理解观察者设计模式
在观察者设计模式中,对象(主题)维护了一个依赖(观察者)列表,以便主题可以使用观察者定义的任何方法通知所有观察者它所发生的变化。 ...
Get Python设计模式(第2版) now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.