ããã¯ãšã³ãéçºã®ã³ã³ããã¹ãã§ã¯ãäŸåæ§æ³šå ¥ (DI) ã¯ãäž»ã«ã¢ããªã±ãŒã·ã§ã³å ã®ããŸããŸãªã³ã³ããŒãã³ããšãªããžã§ã¯ãéã®äŸåé¢ä¿ã管çããããã«äœ¿çšããããœãããŠã§ã¢èšèšãã¿ãŒã³ãæããŸãã DI ã®äž»ãªç®çã¯ãããŒãã³ãŒãã£ã³ã°ãããäŸåé¢ä¿ãæå°éã«æããããšã§ãã³ã³ããŒãã³ãã®åé¢ããã»ã¹ãä¿é²ããã³ã³ããŒãã³ãéã®å¹ççãªéä¿¡ãä¿é²ããããšã§ããè€éã«çµ¡ã¿åã£ãäŸåé¢ä¿ãæžããããšã§ãéçºè ã¯å ç¢ã§ãã¹ãã容æã§ä¿å®ããããã³ãŒããå®çŸã§ããã·ã¹ãã èšèšã®æé©åãšãœãããŠã§ã¢å質ã®åäžã«ã€ãªãããŸãã
äŸåé¢ä¿ã®æ¿å ¥ã¯ããªããžã§ã¯ãã®äœæãšãã®äœ¿çšãåé¢ããããšã§æ©èœããã³ã³ããŒãã³ããæ©èœããããã«å¿ èŠãªäŸåé¢ä¿ãçŽæ¥æ§ç¯ããã®ã§ã¯ãªãã广çã«èŠæ±ã§ããããã«ããŸããããããããšã§ãéçºè ã¯äŸåé¢ä¿ã倿Žããããšãªãã³ã³ããŒãã³ãã眮ãæããã倿Žãããã§ãããããã¢ãžã¥ãŒã«åŒã§æè»ãªã¢ããªã±ãŒã·ã§ã³ãå®çŸããŸãã
ããã¯ãšã³ãéçºã§ã¯ãäŸåé¢ä¿ã®æ¿å ¥ãã¿ãŒã³ã¯ããã倧ããªå¶åŸ¡ã®å転 (IoC) ååã®éèŠãªåŽé¢ã§ãããäŸåé¢ä¿ã®äœæãšç®¡çã®è²¬ä»»ãã³ã³ããŒãã³ãèªäœããäžå€®ã®ã³ã³ãããŒãŸãã¯ãµãŒãã¹ã«ç§»ãããšãç®çãšããŠããŸãã IoC ã«ãããã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã容æã«ãªããåå©çšæ§ãåäžããæç¢ºã«å®çŸ©ãããé¢å¿äºã®åé¢ã容æã«ãªããéçºè ã¯ã¢ããªã±ãŒã·ã§ã³ã®åäœãã¹ã±ãŒã©ããªãã£ãä¿¡é Œæ§ã«å¯Ÿããå¶åŸ¡ã¬ãã«ã匷åã§ããŸãã
ããã¯ãšã³ãéçºã®ã³ã³ããã¹ãã§äžè¬çã«äœ¿çšãããäŸåæ§æ³šå ¥ã«ã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒ ã€ã³ãžã§ã¯ã·ã§ã³ãã»ãã¿ãŒ ã€ã³ãžã§ã¯ã·ã§ã³ãã€ã³ã¿ãŒãã§ã€ã¹ ã€ã³ãžã§ã¯ã·ã§ã³ãšãã 3 ã€ã®äž»èŠãªã¹ã¿ã€ã«ããããŸããããããã«å©ç¹ããããç¹å®ã®äœ¿çšäŸãèŠä»¶ã«æé©ã§ãã
ã³ã³ã¹ãã©ã¯ã¿ãŒã®æ³šå ¥ã«ã¯ã å¿ èŠãªäŸåé¢ä¿ãã³ã³ããŒãã³ãã®ã³ã³ã¹ãã©ã¯ã¿ãŒã«æ³šå ¥ããããšãå«ãŸããŸããäŸåé¢ä¿ã¯ããã§åæåããããªããžã§ã¯ãã®åç¶æéå šäœã«ããã£ãŠäœ¿çšãããŸããã³ã³ã¹ãã©ã¯ã¿ãŒ ã€ã³ãžã§ã¯ã·ã§ã³ã¯ãå¿ é ã®äŸåé¢ä¿ã®åŒ·å¶ãå¯èœã«ããå¿ èŠãªãã¹ãŠã®ã³ã³ããŒãã³ããååšãã䜿çšããåã«é©åã«åæåãããããšãä¿èšŒãããããéåžžã«äŸ¿å©ã§ãããã®æ¹æ³ã¯ãäŸåé¢ä¿ã«äžå€æ§ã課ããããããå®å šã§ãããšèããããŠãããã³ãŒãã«ãã°ãçºçãã«ãããªããçè§£ãããããªããŸãã
Setter Injection 㯠ãããã㣠ã€ã³ãžã§ã¯ã·ã§ã³ãšãåŒã°ããã³ã³ããŒãã³ãå ã®å°çšã® setter ã¡ãœãã (ãã¥ãŒããŒã¿ãŒ) ãä»ããŠäŸåé¢ä¿ãæ³šå ¥ããŸãããã®ææ³ã§ã¯ãªãã·ã§ã³ã®äŸåé¢ä¿ãèš±å¯ããããããã·ã¹ãã èšèšã«æè»æ§ãæäŸãããŸãããã ããäŸåé¢ä¿ã®å€æŽå¯èœãªæ§è³ªã«ãããè€éããå¢ããå®è¡æãšã©ãŒãçºçããå¯èœæ§ããããŸãã
ã€ã³ã¿ãŒãã§ã€ã¹ã®æ¿å ¥ã§ã¯ãäŸåé¢ä¿ãæ³šå ¥ããããã«ç¹å®ã®ã€ã³ã¿ãŒãã§ã€ã¹ã®å®è£ ãå¿ èŠã«ãªããŸããã³ã³ããŒãã³ãã¯ãããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãæ¡åŒµãŸãã¯å®è£ ããããšã«ãã£ãŠãå¿ èŠãªäŸåé¢ä¿ãæç€ºçã«èŠæ±ããŸããã€ã³ã¿ãŒãã§ã€ã¹ ã€ã³ãžã§ã¯ã·ã§ã³ã¯é«åºŠãªã«ã¹ã¿ãã€ãºãšæ§æå¯èœæ§ãæäŸããŸãããã³ãŒããè€éã«ãªãåé·ã«ãªãå¯èœæ§ããããŸãã
SpringãLaravelãDjango ãªã©ã®ææ°ã®ããã¯ãšã³ã ãã¬ãŒã ã¯ãŒã¯ã¯ãäŸåæ§æ³šå ¥ã®æŠå¿µãå®å šã«åãå ¥ããåºç¯å²ã«æ¡çšããŠããŸãããããã®ãã¬ãŒã ã¯ãŒã¯ã«ã¯ãå€ãã®å Žåãå¶åŸ¡ã®å転ã³ã³ãããŒãçµã¿èŸŒãŸããŠãããäŸåé¢ä¿ã®ç®¡çãå€§å¹ ã«ç°¡çŽ åãããéçºè ã DI ã®å©ç¹ãç°¡åã«æŽ»çšã§ããããã«ãªããŸãã
AppMasterãã©ãããã©ãŒã ã¯ãããã¯ãšã³ããWebãããã³ã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³éçºã®ããã®é«åºŠãªno-codeããŒã«ã§ãããé«åºŠã«ã¢ãžã¥ãŒã«åãããŠçæãããã¢ããªã±ãŒã·ã§ã³ã«äŸåæ§æ³šå ¥ã®ååãã·ãŒã ã¬ã¹ã«çµ±åããŸããã¢ãžã¥ãŒã«æ§ãççµåãä¿å®æ§ã®åäžãªã©ãDI ã®é åçãªå©ç¹ã掻çšããããšã§ãAppMaster ãå©çšããã¢ããªã±ãŒã·ã§ã³ã¯ãçµ¶ããå€åããããžãã¹èŠä»¶ããŠãŒã¹ã±ãŒã¹ã«æ¡åŒµããŠé©å¿ã§ããŸãããã®ãã©ãããã©ãŒã ãæäŸããè¿ éãªã¢ããªã±ãŒã·ã§ã³éçºã¯ãä¿¡é Œæ§ã®é«ããœãŒã¹ ã³ãŒãçæãšçžãŸã£ãŠããšã³ã¿ãŒãã©ã€ãº ã°ã¬ãŒãã®ã¹ã±ãŒã©ãã«ãªã¢ãžã¥ãŒã«åŒãœãããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããéã«ãéçºè ãšäŒæ¥ã®äž¡æ¹ã«çã«åªãããšã¯ã¹ããªãšã³ã¹ãæäŸããŸãã
äŸåé¢ä¿ã®æ¿å ¥ã¯ãããã¯ãšã³ãéçºã®åéã«ãããåºæ¬çãªèšèšãã¿ãŒã³ã§ãããéçºè ãã¢ãžã¥ãŒã«åŒã§æè»ã§ä¿å®ã容æãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããããã«ããŸãã AppMasteräŸåæ§æ³šå ¥æè¡ãå·§ã¿ã«æŽ»çšããããšã§ãã¹ã±ãŒã©ãã«ã§é«å質ãªã¢ããªã±ãŒã·ã§ã³ã®çæãä¿èšŒããäžå°äŒæ¥ãå€§äŒæ¥ã«å¯ŸããŠå¹ççã§ã³ã¹ãå¹çã®é«ããè¿ éãªã¢ããªã±ãŒã·ã§ã³éçºãæäŸããŸãã