例項:web應用程式
#!/usr/bin/env python#coding:utf-8
from wsgiref.******_server import make_server
class dbhelper(object):
def __init__(self):
self.hostname = '1.1.1.1'
self.port = 3306
self.password = 'pwd'
self.username = 'root'
def fetch(self):
# 連線資料庫
# 拼接sql語句
# 操作
return 'fetch'
def create(self):
# 連線資料庫
# 拼接sql語句
# 操作
return 'create'
def remove(self):
# 連線資料庫
# 拼接sql語句
# 操作
return 'remove'
def modify(self):
# 連線資料庫
# 拼接sql語句
# 操作
return 'modify'
class handler(object):
def index(self):
# 建立物件
對於上述例項,每個請求到來,都需要在記憶體裡建立乙個例項,再通過該例項執行指定的方法。
那麼問題來了...如果併發量大的話,記憶體裡就會存在非常多功能上一模一樣的物件。存在這些物件肯定會消耗記憶體,對於這些功能相同的物件可以在記憶體中僅建立乙個,需要時都去呼叫,也是極好的!!!
鐺鐺 鐺鐺 鐺鐺鐺鐺鐺,單例模式出馬,單例模式用來保證記憶體中僅存在乙個例項!!!
通過物件導向的特性,構造出單例模式:12
3456
78910
1112
1314
15
# ########### 單例類定義 ###########
class
foo(
object
):
__instance
=
none
@staticmethod
def
singleton():
if
foo.__instance:
return
foo.__instance
else
:
foo.__instance
=
foo()
return
foo.__instance
# ########### 獲取例項 ###########
obj
=
foo.singleton()
對於python單例模式,建立物件時不能再直接使用:obj = foo(),而應該呼叫特殊的方法:obj = foo.singleton() 。
#!/usr/bin/env python#coding:utf-8
from wsgiref.******_server import make_server
# ########### 單例類定義 ###########
class dbhelper(object):
__instance = none
def __init__(self):
self.hostname = '1.1.1.1'
self.port = 3306
self.password = 'pwd'
self.username = 'root'
@staticmethod
def singleton():
if dbhelper.__instance:
return dbhelper.__instance
else:
dbhelper.__instance = dbhelper()
return dbhelper.__instance
def fetch(self):
# 連線資料庫
# 拼接sql語句
# 操作
pass
def create(self):
# 連線資料庫
# 拼接sql語句
# 操作
pass
def remove(self):
# 連線資料庫
# 拼接sql語句
# 操作
pass
def modify(self):
# 連線資料庫
# 拼接sql語句
# 操作
總結:單利模式存在的目的是保證當前記憶體中僅存在單個例項,避免記憶體浪費!!!
設計模式 單例模式
單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...
設計模式 單例模式
class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...
設計模式 單例模式
單例模式的目的是保證類在系統中只被例項化一次,由該唯一的例項來為系統提供服務.單例模式主要用於保證服務的統一,比如獲取統一的編號服務,模仿oracle的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...