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

Dependency Injection

Dependency Injection (DI) pattern สำหรับ loose coupling, testability และ flexibility

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 เพื่อปลดล็อกบทความทั้งหมด