Các mẫu thiết kế Python - Singleton
Mẫu này hạn chế việc khởi tạo một lớp cho một đối tượng. Nó là một kiểu sáng tạo và chỉ liên quan đến một lớp để tạo các phương thức và các đối tượng được chỉ định.
Nó cung cấp một điểm truy cập toàn cầu cho cá thể được tạo.
Làm thế nào để triển khai một lớp singleton?
Chương trình sau đây trình bày việc triển khai lớp singleton nơi nó in các thể hiện được tạo nhiều lần.
class Singleton:
__instance = None
@staticmethod
def getInstance():
""" Static access method. """
if Singleton.__instance == None:
Singleton()
return Singleton.__instance
def __init__(self):
""" Virtually private constructor. """
if Singleton.__instance != None:
raise Exception("This class is a singleton!")
else:
Singleton.__instance = self
s = Singleton()
print s
s = Singleton.getInstance()
print s
s = Singleton.getInstance()
print s
Đầu ra
Chương trình trên tạo ra kết quả sau:
Số lượng phiên bản được tạo là như nhau và không có sự khác biệt về các đối tượng được liệt kê trong đầu ra.