Dependency Inversion — ดู arrow พลิกทิศ
กด Invert เพื่อดูว่าทำไม Business Logic ถึง ไม่ต้องรู้จัก ใครเลย
Swap adapter — Business Logic ไม่กระทบเลย
กดแต่ละปุ่มเพื่อเปลี่ยน implementation. ดู "Files changed" ที่ด้านล่าง
Business Logic files changed
0
ไม่ต้องแตะ business logic เลย
Adapter files changed
1
แค่สร้าง/swap adapter ใหม่
TodoAPI.swift — concrete, tightly coupled Before
loading... 💡
Takeaway
Business Logic ไม่รู้จัก URLSession, ไม่รู้จัก Core Data, ไม่รู้จักอะไรเลย.
มันรู้จักแค่ TodoRepository protocol ที่มันเป็นคน define เอง.
เปลี่ยน REST → GraphQL, เพิ่ม cache, swap เป็น mock — ทุกอย่างทำได้โดย ไม่แตะ business logic เลย