單例模式:
當類例項化一次後,就會一直使用該例項化,而不會建立新的例項化物件。
不加單例模式的例項化效果:
class singleton(object):pass
obj1 = singleton()
print(obj1) #<__main__.singleton object at 0x00000167a41c7700>
obj2 = singleton()
print(obj2) #<__main__.singleton object at 0x00000167a41c7c10>
使用單例模式後:
class singleton(object):instance = none
def __new__(cls, *args, **kwargs):
if not cls.instance:
cls.instance = object.__new__(cls)
return cls.instance
obj1 = singleton()
print(obj1) #<__main__.singleton object at 0x00000167b0277c10>
obj2 = singleton()
print(obj2) #<__main__.singleton object at 0x00000167b0277c10>
這樣所有例項化出的物件都是一樣的。
Python 23種設計模式全(python例子)
建立型1.factory method 工廠方法 2.abstract factory 抽象工廠 3.builder 建造者 4.prototype 原型 5.singleton 單例 結構型6.adapter class object 介面卡 7.bridge 橋接 8.composite 組合 ...
Python高階 相容Python2 3
第一種也是最重要的方法,就是匯入future模組。它可以幫你在python2中匯入python3的功能。上下文管理器是python2.6 引入的新特性,如果你想在python2.5中使用它可以這樣做 from future import with statement 在python3中print已經...
設計模式 23種設計模式
一 軟體設計模式的概念 軟體設計模式 software design pattern 又稱設計模式,是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。它描述了在軟體設計過程中的一些不斷重 生的問題,以及該問題的解決方案。也就是說,它是解決特定問題的一系列套路,是前輩們的 設計經驗的總結...