Design Patterns
Design patterns ที่ใช้บ่อยใน Python พร้อมตัวอย่างและการประยุกต์ใช้
Singleton Pattern
Section titled “Singleton Pattern”# วิธีที่ 1: Class variableclass Singleton: _instance = None
def __new__(cls): if cls._instance is None: print("Creating new instance") cls._instance = super().__new__(cls) return cls._instance
s1 = Singleton()s2 = Singleton()print(f"Same instance: {s1 is s2}")
# วิธีที่ 2: Module-level (Pythonic way)# config.py# _config = {}# def get_config():# return _config
# วิธีที่ 3: Decoratordef singleton(cls): instances = {} def get_instance(*args, **kwargs): if cls not in instances: instances[cls] = cls(*args, **kwargs) return instances[cls] return get_instance
@singletonclass Database: def __init__(self, url="default"): self.url = url
db1 = Database("postgres://localhost")db2 = Database("mysql://localhost")print(f"\nSame DB: {db1 is db2}")print(f"URL: {db2.url}") # ยังเป็น postgresเข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google