Skip to content
เข้าสู่ระบบ

Design Patterns

Design patterns ที่ใช้บ่อยใน Python พร้อมตัวอย่างและการประยุกต์ใช้

# วิธีที่ 1: Class variable
class 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: Decorator
def singleton(cls):
instances = {}
def get_instance(*args, **kwargs):
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]
return get_instance
@singleton
class 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 เพื่อปลดล็อกบทความทั้งหมด