python的單例模式 第21講

2021-09-27 06:26:46 字數 587 閱讀 3811

# --author--=michal

# date=2019/9/4

##########單例模式##########

# 單例模式主要利用類方法,所有裡面都帶上cls.證明是操作乙個類,否則就不是單例了

##########單例模式##########

class obj:

__v = none # 靜態欄位private修飾的

@classmethod #類方法,直接可以用類名呼叫

def get_instance(cls):

if cls.__v:

return cls.__v

else:

cls.__v = obj()

return cls.__v

if __name__ == '__main__':

#建立物件,無論建立多少次都是只有乙個物件

o1=obj.get_instance()

o2=obj.get_instance()

if o1==o2:

print("乙個物件")

else:

print("多個物件")

2 1 單例模式

皇帝與臣子 乙個類只能生成乙個物件 皇帝 其他所有類對這個物件的依賴都是同乙個,體現到 上如下 author zephyr description 定義乙個私有的構造器,emperor自己可以new乙個物件,但其他類不能new當前物件,其他類只能通過靜態的getinstance方法獲取emperor...

2 1單例模式

物件資料型別的作用 把描述同乙個事物 同乙個物件 的屬性和方法放在乙個記憶體空間下,起到了分組的作用,這樣不同事物之間的屬性即使屬性名相同,相互也不會發生衝突 我們把這種分組編寫 的模式叫做 單例模式 在單例模式中我們把person1和person2也叫做 命名空間 var person1 var ...

設計模式 21 單例模式

宣告 vs2012中已經支援c 11了,因此下面的程式在vs2012中可以執行。如果版本比2012低,可能因為不支援 std mutex,std shared ptr而失敗。ifndef singleton h define singleton h include include using nam...