第10章 状态设计模式

在本章中,我们将为读者介绍状态设计模式。就像命令或模板设计模式一样,状态模式也属于行为模式的范畴。

下面,我们将向读者介绍状态设计模式,以及如何将其应用于软件应用程序开发。在此过程中,我们将介绍一个示例、一个真实的场景以及该模式的Python V3.5代码实现。

我们将在本章中简要介绍下列主题:

  • 国家设计模式简介;
  • 状态设计模式及其UML图;
  • 利用Python v3.5代码实现的真实用例;
  • 状态模式的优缺点。

在本章结尾处,我们将向读者介绍状态设计模式的应用和场景。

行为模式关注的是对象的响应性。它们通过对象之间的交互以实现更强大的功能。状态设计模式是一种行为设计模式,有时也被称为状态模式的对象。在此模式中,一个对象可以基于其内部状态封装多个行为。状态模式也可以看作是在运行时改变对象行为的一种方式。

 

小技巧: 

实际上,在运行时改变行为正好是Python所擅长的事情!

下面,我们以收音机为例进行说明。收音机具有AM / FM(切换开关)两种调频方式和一个扫描按钮,该按钮可扫描多个FM/AM频道。当用户打开无线电时,收音机的基本状态已经设置好了(例如,它被设置为FM)。通过单击扫描按钮,可以将收音机调谐到多个有效的FM频率或频道。然后,当基本状态改为AM时,扫描按钮则会帮助用户调谐到多个AM频道。因此,根据收音机的基本状态(AM/FM),当调谐到AM或FM频道时,扫描按钮的行为就会动态地改变。

因此,状态模式允许对象在其内部状态变化时改变其行为。这看起来就像对象本身已经改变了它的类一样。状态设计模式常用于开发有限状态机,并帮助协调状态处理操作。 ...

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.