單例模式
class user:
__instance = none
def __new__(cls, *args, **kwargs):
if cls.__instance == none:
cls.__instance = object.__new__(user)
return cls.__instance
案例:辦公室的印表機
一台印表機可以服務於乙個辦公室中所有的人,完成他們的列印任務。
分析:1.印表機:將要列印的任務新增到列印的任務佇列中,真正的列印操作
2.經理:將要列印的操作加入印表機中
3.員工:將要列印的操作加入印表機中
class manager:
def use_printer(self,info,pr):
pr.add_task(info)
class staff:
def use_printer(self,info,pr):
pr.add_task(info)
class printer:
__instance = none
__is_init = false
def __new__(cls, *args, **kwargs):
if cls.__instance is none :
cls.__instance = object.__new__(printer)
return cls.__instance
def __init__(self):
if printer.__is_init == false:
print("init.........")
self.list_print =
printer.__is_init = true
def add_task(self,info):
"""新增列印資訊到列印佇列中"""
def print(self):
print(self.list_print)
# 程式設計師a:
pr1 = printer()
m1 = manager()
m1.use_printer("hello",pr1)
# 程式設計師b:
pr2 = printer()
st1 = staff()
st1.use_printer("itcast",pr2)
# 程式設計師c:
pr = printer()
pr.print()
print(id(pr1))
print(id(pr2))
print(id(pr))
單例 單例模式
簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...
單鏈表(合併單鏈表)
單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標head開始訪問,沿著next指標所指示的方向依次訪問每乙個結點,且每個結點只能訪問依次,直到最後乙個結點為止。遍歷時注意,不要改變head指標的指向。因此一般設定另外的乙個指標變數如p,p從head開始依次訪問乙個結點,直到鍊錶結束,此時p null,完成依次...
Kafka 單節點單Kafka Broker集群
tar zxvf kafka 2.12 0.10.2.1.tgz cd kafka 2.12 0.10.2.1 bin zookeeper server start.sh config zookeeper.properties bin kafka server start.sh config ser...