# --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...