25、实用设计模式详解

实用设计模式详解

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)中运行,它提供了接口和适配器等的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值