單例模式面試常常被問面試
應用場景:日誌logger插入,計時器、權限校驗、網站計數器,windows資源管理器,回收站,線程池,數據庫鏈接池等資源池。數據庫
什麼狀況下須要單例模式:windows
1.每一個實例都會佔用資源,並且每一個實例初始化都會影響性能;app
2.當有同步需求的時候,如日誌文件的控制,確保只有一個實例。性能
上代碼:網站
class singleton(object): __isinstance = None def __new__(cls, *args, **kwargs): if cls.__isinstance is None: cls.__isinstance = object.__new__(cls) return cls.__isinstance else: return cls.__isinstance a = singleton() b = singleton() print(id(a)) print(id(b))