手動でのDI
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/17 02:57 UTC 版)
上記のコードを、手動でDIを行うようにリファクタリングすると下記のようになる。 public class VerySimpleStockTraderImpl implements IAutomatedStockTrader { private IStockAnalysisService analysisService; private IOnlineBrokerageService brokerageService; public VerySimpleStockTraderImpl( IStockAnalysisService analysisService, IOnlineBrokerageService brokerageService) { this.analysisService = analysisService; this.brokerageService = brokerageService; } public void executeTrades() { … }}public class MyApplication { public static void main(String[] args) { IStockAnalysisService analysisService = new StockAnalysisServiceImpl(); IOnlineBrokerageService brokerageService = new NewYorkStockExchangeBrokerageServiceImpl(); IAutomatedStockTrader stockTrader = new VerySimpleStockTraderImpl( analysisService, brokerageService); stockTrader.executeTrades(); }} この例では、MyApplication.main()が依存性の注入を行っており、VerySimpleStockTraderImpl自体は特定の実装に依存しなくなっている。なお、この実装ではコンストラクタ注入の手法が用いられている。
※この「手動でのDI」の解説は、「依存性の注入」の解説の一部です。
「手動でのDI」を含む「依存性の注入」の記事については、「依存性の注入」の概要を参照ください。
- 手動でのDIのページへのリンク