More Related Content
Similar to Spring4Dの紹介 (20)
More from Shinya Okano (17)
Spring4Dの紹介
- 17. 依存関係がある場合の欠点
• 再利用しにくい
• 単体テストしにくい TCalculator
uCalculator.pas
TMathService
uMathService.pas
uses uMathService;
service := TMathService.Create;uCalculatorだけをテストしたい
が
uMathServiceも必要となる
TMathServiceを別の処理に差し
替えたいが、uCalculator.pasを
編集しないといけない
- 21. DIコンテナを利用して
依存関係を除去する
// コンテナから計算処理クラスのインスタンスを
取得
service := Container.Resolve<IMathService>;
• インターフェースを用
意
• DIコンテナを用意
uServiceLocator.pas
TContainer
uServiceLocator.pas
uServiceLocator.pas
IMathService
uMathServiceIntf.pas
uServiceLocator.pas
TMathService
uMathService.pas
実装クラス登録 インターフェース利
用
• インターフェースを実装
• 実装クラスをコンテナに
登録(依存性の注入)
uServiceLocator.pas
TCalculator
uCalculator.pas
インスタンス取
得
インターフェース利
用
• コンテナから実装クラ
ス(のインスタンス)を
取得
- 31. 参考
• Getting Giddy with Dependency Injection and
Delphi Spring #5 – Delphi Spring Basics
• https://bitbucket.org/sglienke/spring4d
- 33. 第7回 Delphi Talks @東京
• 日時: 2014/04/26(土) 13:30 〜 17:30
• 場所: 株式会社ビープラウド 会議室(新宿)
• 参加申込み:
• http://connpass.com/event/6021/
• facebook上のイベント
• MLやフォーラムの案内への返信でもok