实用设计模式详解
1. 单例模式相关探讨
单例模式在解决应用程序中的唯一性问题时存在一些情况。例如以下代码:
>>> class MyOtherClass(MyClass):
... b = 2
...
>>> three = MyOtherClass()
>>> three.b
2
>>> three.a
3
>>> three.a = 2
>>> one.a
2
这种方式解决了子类化的问题,但仍然依赖于子类代码的工作方式。如果 __getattr__ 方法被重写,该模式可能会被破坏。并且单例模式不适合有多层继承的情况,因为标记为单例的类本身已经具有特定性。
许多开发者认为单例模式是处理应用程序中唯一性的一种较重的方式。如果需要单例,使用带有函数的模块可能更好,因为 Python 模块本身就是单例。单例工厂是处理应用程序中唯一性的一种隐式方式,但除非在类似 Java 的框架中需要这种模式,否则建议使用模块而不是类。
2. 结构型模式
结构型模式在大型应用程序中非常重要,它们决定了代码的组织方式,并为开发者提供了与应用程序各部分交互的方法。在 Python 世界中,最著名的结构型模式实现是 Zope 组件架构(ZCA),它实现了本节描述的大多数模式,并提供了丰富的工具来处理这些模式。ZCA 不仅可以在 Zope 框架中运行,还可以在其他框架(如 Twisted)中运行,它提供了接口和适配器等的
超级会员免费看
订阅专栏 解锁全文
2566

被折叠的 条评论
为什么被折叠?



