第14章 有用的设计模式

针对软件设计的常见问题,设计模式是可复用的且有点语言相关的解决方案。关于这个主题的最流行的书是Design Patterns: Elements of Reusable Object-Oriented Software,这本书由Gamma、Helm、Johnson和Vlissides编写,它们也被称为四人组Gang of FourGoF。这本书是这个领域中的重要著作,它收录了23种设计模式,并使用SmallTalk和C++编写了示例。

在设计应用程序的代码时,这些模式有助于解决常见问题。所有开发人员对它们都似曾相识,因为它们描述了已验证的开发范例。但是在学习这些模式时应该考虑使用的语言,因为其中一些在某些语言中没有意义或者语言中已经内置了。

本章介绍了Python中最有用的以及最值得大家讨论的模式,以及实现示例。以下3个部分对应于GoF定义的设计模式类别。

  • 创建型模式(creational patterns:这些模式用于生成具有特定行为的对象。
  • 结构型模式(structural patterns:这些模式有助于为特定用例构建代码。
  • 行为模式(behavioral patterns:这些模式有助于分配责任和封装行为。

创建型模式处理对象实例化机制。这样的模式可以定义如何创建对象实例或者甚至如何构造类的方式。

这些是编译型语言(如C或C ++)中非常重要的模式,因为在运行时难以生成需要的类型。

但是在运行时创建新类型在Python中是相当简单的。使用内置的type函数可以通过代码定义一个新类型的对象如下:

>>> MyType = type('MyType', (object,), {'a': 1})
>>> ob = ...

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.