Dependency Injection
Dependency Injection (DI) pattern สำหรับ loose coupling, testability และ flexibility
ทำความเข้าใจ DI
Section titled “ทำความเข้าใจ DI”print("Dependency Injection Concepts:")print("=" * 50)
print("""Without DI (tightly coupled): class OrderService: def __init__(self): self.db = PostgresDB() # Hardcoded dependency self.mailer = SmtpMailer() # Hardcoded
def create_order(self, data): self.db.save(data) self.mailer.send("Order created")
Problems: - Can't use different database - Hard to test (need real DB) - OrderService knows too much
With DI (loosely coupled): class OrderService: def __init__(self, db, mailer): # Dependencies injected self.db = db self.mailer = mailer
def create_order(self, data): self.db.save(data) self.mailer.send("Order created")
Benefits: - Easy to swap implementations - Easy to test with mocks - OrderService only knows interfaces""")เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google