第14章 有用的设计模式
针对软件设计的常见问题,设计模式是可复用的且有点语言相关的解决方案。关于这个主题的最流行的书是Design Patterns: Elements of Reusable Object-Oriented Software,这本书由Gamma、Helm、Johnson和Vlissides编写,它们也被称为四人组(Gang of Four)或GoF。这本书是这个领域中的重要著作,它收录了23种设计模式,并使用SmallTalk和C++编写了示例。
在设计应用程序的代码时,这些模式有助于解决常见问题。所有开发人员对它们都似曾相识,因为它们描述了已验证的开发范例。但是在学习这些模式时应该考虑使用的语言,因为其中一些在某些语言中没有意义或者语言中已经内置了。
本章介绍了Python中最有用的以及最值得大家讨论的模式,以及实现示例。以下3个部分对应于GoF定义的设计模式类别。
- 创建型模式(creational patterns):这些模式用于生成具有特定行为的对象。
- 结构型模式(structural patterns):这些模式有助于为特定用例构建代码。
- 行为模式(behavioral patterns):这些模式有助于分配责任和封装行为。
14.1 创建型模式
创建型模式处理对象实例化机制。这样的模式可以定义如何创建对象实例或者甚至如何构造类的方式。
这些是编译型语言(如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.