第7章 命令模式——封装调用

在上一章中,我们首先介绍了行为设计模式,然后讲解了观察者的概念,并讨论了观察者设计模式。同时,还使用UML图阐释了观察者设计模式的概念,并且学习了如何借助Python实现将其应用于现实世界中。然后,我们又讨论了观察者模式的利弊,解答了与观察者模式有关的常见问题,最后对章节内容进行了总结。

在本章中,我们将讨论命令设计模式。就像观察者模式一样,命令模式业也属于行为模式的范畴。我们将首先介绍命令设计模式,并讨论如何在软件应用程序开发中应用它。同时,我们还将通过一个用例来帮助读者理解这个模式,并给出了相应的Python v3.5实现代码。

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

  • 命令设计模式简介;
  • 命令模式及其UML图;
  • Python v3.5代码实现的真实用例;
  • 命令模式的优缺点;
  • 常见问答。

正如我们在上一章中所看到的那样,行为模式侧重于对象的响应性。它利用对象之间的交互实现更强大的功能。命令模式也是一种行为设计模式,其中对象用于封装在完成一项操作时或在触发一个事件时所需的全部信息。这些信息包括以下内容:

  • 方法名称;
  • 拥有方法的对象;
  • 方法参数的值。

让我们用一个非常简单的软件例子来理解该模式,如安装向导。通常情况下,安装向导通过多个步骤或屏幕来了解用户的偏好。因此,当用户使用向导时,他/她需要做出某些选择。通常来说,向导可以使用命令模式来实现。向导首先会启动一个名为Command的对象。用户在向导的多个步骤中指定的首选项或选项将存储在Command对象中。当用户在向导的最后一个屏幕上单击Finish按钮时,Command对象就会运行execute()方法,该方法会考察所有存储的选项并完成相应的安装过程。因此,关于选择的所有信息被封装在稍后用于采取动作的对象中。 ...

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.