%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% flowchart LR subgraph Era1["ยุคสร้างเอง / Manual Creation"] A["new Service()ผูกแน่นกับ Class"] end subgraph Era2["ยุค DI Pattern / Dependency Injection"] B["Constructor Injectionส่ง Dependency จากภายนอก"] C["Mock Friendlyทดสอบง่ายขึ้น"] end subgraph Era3["ยุค Angular Injector / Angular DI"] D["@Injectableลงทะเบียน Service"] E["Injector HierarchyRoot Module Component"] end A --> B --> C --> D --> E
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% flowchart TD A["Root Injectorตัวฉีดระดับแอป"] --> B["Module Injectorตัวฉีดระดับโมดูล"] B --> C["Component Injectorตัวฉีดระดับคอมโพเนนต์"] C --> D["Component Classรับ Service ผ่าน constructor"] D --> E["Service Dependencyตรรกะหรือ API"]